It's not too much effort using a well-suited library (ex. python's requests is excellent). My main concern is being throttled for "suspicious activity", though as I said if you keep a low profile there shouldn't be problems.If you really wanted to, you could archive a limitless amount of tweets using sites like Archive.org/is/today, According to Twitter, they're nothing more than users viewing linked tweets. The problem is when you want to archive an account that's amassed more than several thousand. If you really wanted to, you could save every link, but that's far too much effort.
This is from Kenneth Reitz, creator of requests https://github.com/kennethreitz/twitter-scraper
This looks more flexible: https://github.com/taspinar/twitterscraper
With Twitter's Search API you can only sent 180 Requests every 15 minutes. With a maximum number of 100 tweets per Request this means you can mine for 4 x 180 x 100 = 72.000 tweets per hour. By using TwitterScraper you are not limited by this number but by your internet speed/bandwith and the number of instances of TwitterScraper you are willing to start.
One of the bigger disadvantages of the Search API is that you can only access Tweets written in the past 7 days. This is a major bottleneck for anyone looking for older past data to make a model from. With TwitterScraper there is no such limitation.