Gconf will actually quite happily write to a single data file. But for some reason, the default is for a million little directories, each with a data file containing just the values for that directory in the Gconf hierachy; and there is no user-accessible way to switch from one format to the other.
I just checked gconf's README.Debian file and it says,
> By default, the home directory structure is created as a tree layout
> since it improves write performance. If you want to use a merged tree
> on the home directory, you should run the following command:
> gconf-merge-tree ~/.gconf/
It occurs to me that the write performance would not be an issue if it didn't write out the entire file each time an entry was changed, but instead collected up the logical writes and did a single rewrite of the %gconf-tree.xml file after a certain period of idle time (or 5 seconds maximum). I should probably file a bug about that...