Всё нижеследующее - IMHO.
1. Заголовок нужен. Не стоит закладываться на имя файла - содержимое файла должно однозначно определять происходящее.
Без дополнительного утиля, без hex-редакторов, можно будет простым копированием и переименовыванием добавлять в систему шрифты.
Это чушь - в любом случае шрифт нужно создавать, и без дополнительного утиля и hex-редакторов не обойтись. Кстати, как раз будет соблазн скопировать arial_8x8.fnt в arial_8x12.fnt и долго ругаться на либу, которая этого почему-то не понимает.
А если пользователь закосячил, то вместо текста у него в программах будет месево. А вот если автор либы закосячил (например, полностью полагаясь на заголовок), то приложения будут вылетать с непонятной ошибкой.
И в первом случае пользователь будет обиженно плеваться на "глючные программы, выдающие какую-то фигню", а во втором выдачи какой-то фигни не будет. Если программа не может что-то обработать, она должна об этом предупредить (сообщить об ошибке), а не выдавать ерунду.
> Еще пользователь может подсунуть не корректный файл, поменяв ему расширение и т.д. и т.п.
Он так же и с заголовком может поступить.
По статистике число пользователей, умеющих переименовывать файл, значительно больше числа пользователей, владеющих hex-редактором. А процент осознающих свои действия среди переименовывающих файлы соответственно значительно меньше процента осознающих свои действия с hex-редактором.
2. Идея перебора всех файлов и дальнейшем выборе среди них наиболее подходящего всё-таки не смотрится. Во-первых, загружается куча ненужной информации. Во-вторых, могут быть разные шрифты для одного и того же размера (Arial и Courier, скажем) - логичнее загружать шрифт всё-таки по имени. В-третьих, все шрифты одного начертания (Arial всех размеров) лучше хранить в одном большом файле, содержащем все заложенные размеры.