Think of bot AI as spokes on a wheel. The bot is the center and at the end of every spoke is "something" like a pickup, opponent, navigation point, etc. Without any sort of actor on the other end of the spoke it just won't exist. Bots have an extremely limited free patrol mode. With nothing interesting within sight distance, they often will just stand there. You can test this on any map. Just open it in Ed, highlight a navigation point, select all nav points>delete then rebuild the map. Drop in and play with some bots and youll see that if you ghost outside the map they just stand there. If they are close enough to see a pickup they will move to that.
When choosing a spoke, you can often see a bot hesitate a split second as the AI decides a course of action. They will sometimes begin the patrol animation, then quickly take off in another direction. Also there is some "try this" built into the bots. They will attempt to jump sometimes and also shoot the TL sometimes but it's not because they are smart. They are following a list of percentage commands (theres a chance this may occur and a chance that may occur). I've seen odd places in maps that bots would jump off into the lava like little lemmings, you just never know. That why you playtest a map so much.
If you are curious to see the AI code you can look here:
http://unreal.student.utwente.nl/uncodex-ut/
Select "Bot" from the lefthand slide down menu then "Source" from the top like this:
The code you will see is the Bot AI. It's kinda hard to read if you don't code but there's a lot in there you will recognize and I'll bet some things you didn't know.
Oh and there is this too:
http://www.uncommonplace.com/games/mindreader.html
Kind of neat to play with offline.