I don't see an advantage to having it in the filesystem; it's six of one and half a dozen of the other to actually get the snippet code when generating the page; why go to the trouble and overhead of writing more stuff to the database or filesystem?
I'm propping my eyes open with toothpicks at the moment, but the core difference is that to run code from the DB you have to basically fork a process using eval() which is considerably slower than just running code from a include() or require() command. Especially if you have multiple code bits to be executed, the delays in eval()s add up.
Or, as they even say in the manual at PHP.net:
If eval() is the answer, you're almost certainly asking the
wrong question. -- Rasmus Lerdorf, BDFL of PHP
Eval() is a worst case solution when you absolutely, positively cannot find a better way. *Especially* on any system running 4.x-- the Zend engine changes the PHP to a binary structure at the start of the PHP file, prior to parsing it. Every time eval() is called, however, it has to reactivate the parsing procedure and convert the eval()'d code into a binary format.
So, in essence, if you eval() code, it takes as long as calling a new php page with the same code inside. Or, put another way: a single PHP file plus four eval() statements will take as long as FIVE PHP files being called individually.
Does that help?