Goob: Why 5? Why not use a SCP_vector and make support for a whole lot more while you're there?
5 doesn't really allow you to do something like have a different font for every fiction thing, OR allow you to mix fonts in the same screen.
Because I wasn't interesting in coding a huge new feature just for the sake of doing so, or making more changes than were necessary. I was using the philosophy "make everything as simple as possible, but no simpler".
The feature I coded meets all the requirements for Wing Commander Saga and any other campaign that might use a separate font for the fiction viewer (like Scroll or MindGames). It allows a separate font to be used, while avoiding the pitfall of hard-coding it to the WCS mod or any other mod. It is flexible, allowing different font names to be used - not only for the viewer, but for the main interface as well. Finally, it is designed in such a way that it can be upgraded easily in the future: if someone decides that they absolutely must have dynamic font limits, it would be very straightforward to convert the array to use SCP_vector. In the meantime, none of that extra work is needed.
As for mixing fonts in the same screen, that is a feature that's orders of magnitude more complicated than what was requested here. It is not necessary for either WCS or SA.
How about moving this potential other tables into something like 'mod.tbl'. That is instead of having multiple rather small table files floating around.
What would that accomplish? FreeSpace is already designed around "multiple rather small table files". Separation of concerns is ideal for organization as well as for keeping features distinct. There's no reason to have, for example, species_defs.tbl and fonts.tbl merged into the same "mod.tbl". It's counterproductive and sloppy.
There is only one valid reason for combining tables, and that's to avoid the overhead required for opening and closing multiple files in sequence. But even that can be solved by packaging the mod in a .vp file.