Given the database is where you can most easily modify the content, I suspect that our priority system should be either:

1. Database
2. Filesystem

...or, perhaps:

1. The "user" path on disk.
2. The database.
3. The "system" path on disk.

The second makes a certain amount of sense, in that it prefers user supplied data over system data, as much as possible, while still discouraging users changing our template files rather than copying them and editing them.

(We could also split the database into user/system, and treat it similarly in priority order.)