Yeah, that's a perpetually difficult problem for devs going back to the original bots in quake/cs/UT/etc how do you make them feel realistic and not just destroying you. Then of course adding in way more movement, controls, vehicles, etc it turns into a ton of variables that are difficult to control and also difficult to make everyone happy.
I honestly don't have a problem with them, especially in private/co-op. And honestly, they are probably for the best when it comes to official servers in locations that have struggling player counts.