I would keep all your bots scripts to one file.
Reason : simply to keep it all together.

If you have alot of events ie: !bot !help !blah !wobble !etc !etc !etc, i would place them all on the same event using *:TEXT:*:#channel etc.
Reason : matchtexts are checked before channel matching is done, so each line in each channel is matched against all ON TEXT events and then the channel is checked for matching.
This means if you had 20 ON TEXT events for your channel then , every line in lets say the other 12 smile channels your on is checked 20 times, then rejected because of the channel.
... Per line 20 matchtexts & a possable (only if matchtext was true) channel match check which fails
vs 1 ON TEXT:*: every line is matched to * then rejected due to channel
... Per line 1 match (which always sucseeds) & one channel match check which fails

* I well say however this is a method I percieved to be less cpu intensive, I have not attempted to prove it.