I think the main problem with bots is that in order to prevent reverse-engineering detection methods -- so that the bot scripters don't know what got them flagged and can't update to be hidden after one bot gets banned -- riot bans in waves.
The problem? A bot can just grind its way most of the way to 30 in the time it takes between ban waves. If a bot gets banned pre-30, it costs a script nothing to make another account, so you'll just see the hordes of bots before a banwave gets them.
Riot basically would just need a ton more staff/manpower on constantly banning bots to make them be seen less -- they almost all get banned, but not before they've ruined games for like 2-4 weeks, is all.