No such things as events are implemented in bind, it doesn't need that.
You could look around applicative firewalls, who are used in some organizations to restrict access to some users. There you would have more chances of achieving what you want.
Setting up routes seems a good idea too, in the end what you want to achieve with bind and triggered script execution will be inefficient as well: you have to:
for each dest IP
look up through your database
if match set the route
then the OS will see and use the root
Setting up loads of routes isn't a problem and won't affect performance in a noticeable way. How many routes do you think corporate routers have? hundreds? not quite... And they don't necessarily have a fancy hardware configuration. Seriously, you are fine, serious operating systems are specifically designed to handle many routes and optimize the look up.
Besides what you wanted to do in the first place is using a database on top of the routing table, which would be another kind of database. Keep it simple. On BGP servers, many routes are actually selected/prefered for political/financial reasons, each ISP/organization can do that and they all add specific routes for this purpose. The cost of transit or a court order is often the cause of such measures.