Well in the first instance I completely agree with you, bots kill the game and I've been saying that in this thread for some time. My personal venture into the bots was simply to see what they could do and how efficient they were, have no intention to play on those accounts. For what its worth though there are no bots to effectively take and control gyms, those are simply players spoofing their locations.
I contributed to one of the bots on Github which is still going strong but unlike most other bots (which eventually then got abused) was different. It never started out to be about cheating or taking over gyms or sniping pokemon. It was about reverse-engineering the Niantic APIs and then writing code which could simulate human behavior and then include some cool features like the "Pokemon organiser" which would automatically transfer/evolve Pokemons with certain stats (i.e. get rid of all those damn Zubats with a CP less than 400 and IV less than .95) or automatically pick an Ultraball when running into a rare Pokemon. Many of those features should really be in the Pokemon game to start with and over time will become a grind (i.e. you need 400 Magikarp candies to evolve and after you have caught a good hundred of those, there is a ZERO chance that they will not be caught - or also be any higher than 160CP).
Figuring out when Niantic soft-banned and how poor their background infrastructure actually works (at least how the APIs work) was also interesting. I always thought that they would soft- and hard-ban people almost immediately if someone turns up with a non-country IP in another location. They still don't do it and it seems that they mostly banned users who teleported with the same IP across various countries to catch rare Pokemon.
FWIW - you did not need a BOT to spoof a location. Anyone with an Android phone and the SDK could do this with a simple HelloWorld app (or via XCode). Bots just automated the process of walking and catching Pokemon. Other apps allowed to "walk" by using the cursor keys - in most cases those are the people who take over gyms (i.e. teleport to a location, then take over all gyms by walking around). This has been going on with Ingress (and any other geo-caching application) way before Pokemon surfaced.
I do think that Niantic should not ban the usage of "manual bots" as IMO there are very valid uses out there (but with limitation of not taking over gyms or allowing of trading etc) - you will be surprised how many physically limited people would like to participate in this but otherwise can not practically do it. I know of many people who used the manual BOT to "walk" around in their neighbourhood and many of them spend a lot of in-store money for upgrades - so this is a bit of an issue for Niantic - many users without anywhere to go, but quite willing to part with lots of money for lures/eggs/incubators etc. That is also the reason why the ban-wave was tolerated for so long - most people BOTed in nest-areas with lures and XP-eggs out to level accounts so that they could sell them.
There are also many other ways you can cheat without using the BOT but just calling a number of APIs - I am sure that this will be blocked soon as well. Unfortunately most users of those bots used it for commercial purposes and to cheat - guys started to spin up bot-farms on AWS and started selling accounts with various Pokemon - this is still going on, although now a lot more sophisticated with VPNs and much more "human simulation" (i.e. slower walk speeds, breaks, sleep times, missing some pokemon, not throwing perfect catches etc) and Niantic will never be able to detect and block those accounts as the bots do the same thing as the app does (it still calls the same APIs which are now fully reverse-engineered).
What has not been mentioned is that a number of bots have actually harvested the PTC / Google app credentials and sold them off and since most people use Google accounts you can understand the implications of this. So if you have been naive enough to use your own Google / Gmail account you better make sure to change your credentials if you used a bot.
Interesting stats (I was banned as part of the GPS ban-hammer - although travel time permitting, visited US, AUZ, JP, France, Spain and UK) in about 2 weeks with BOT running for about 5 hours / day:
Code:
Total Exp: 1318659
Exp to Lvl 28: 218659 / 250000
Pokemon Encountered: 4564
Pokeballs Thrown: 8356
Pokemon Caught: 4126
Small Ratata Caught: 21
Pokemon Evolved: 258
Eggs Hatched: 193
Unique Pokedex Entries: 123
PokeStops Visited: 6382
Kilometers Walked: 809.32
Niantic only threw the ban-hammer because very soon they will introduce trading and a number of other commercial offers, but they have not been able to get the botting under control and once the commercial features come, you will see many offers on eBay for high-level accounts/Pokemon traded surface. I am pretty sure that they will completely rework their API to avoid reverse-engineering, but it will be tough, as the payload will always have to travel between your phone and their servers.