Enforcebans has nothing to do with setting "-b", and the "-b" that you talk about can be handy method of preventing the banlist from becoming full.
Lets look at the settings: +enforcebans: When a ban is set or a banned user joins the channel, this provide the bot the ability to get off it's ass and do somthing about it. If the ban isn't in the banlist, then the bot will set it, then it will kick the user.
+dynamicbans: After a "+b" is sent to the channel, the bot waits "ban-time" (config file setting) until it unsets it (this is where you problem lies).The idea being, that the banlist is kept to a minimum in size. When a banned user joins the channel, and +enforcebans is set, the the ban will be set again. There are some perssistant user, and most times bots, that will just keep trying, and trying to join, thus when a -b is issued, they join, and the ban setting stuff starts again. You can get around this by making the ban sticky. After setting a ban (EG .+ban *!*user@*.his.isp.com), type ".stick *!*user@*.his.isp.com" and you have a ban then is never unset, unless the bans lifetime expires, rot he ban is killed.