The cu_changes table is not at http://www.mediawiki.org/wiki/Manual:Database_layout%3E because it's provided by an extension.
The rc_bot marks if it's an edit marked as bot. As you have discovered, a bot can make edits not marked as bot (furthermore, as it is only stored in recentchanges table, whether an edit was originally marked as bot is lost after the entry expires, see bug 11181).
As you want to filter out bot activity, you will want joining with usergroups. As a bot account should not perform any "manual" activity, that's a pretty good indicator. OTOH, you may well discover bot operators ocasionally running a bot under their own account, and also bot accounts which weren't given a flag (eg. some patrol bots).
The presence of 'bot' (case insensitive) in the user name is a good hint to treat as bot, but again, there are a few humans with that substring, and a few bots without it.
Finally, are you using in any way the special fields of the checkuser table? As all that data is available in other tables, it may not be appropiate to use access to that restricted information for anything not requiring it.
Regards