Насчет более крутых форматов (всякие огромные целые типы или fixed-point'ы, или что-то заточенное под десятичную / дробную арифметику) - они значительно медленнее и их использовать там, где надо работать быстро имо глупо.
"Простое" в интеллектуальном плане. Трудозатрат то дофига, это понятно. Но имхо гордиться трудозатратами на шаблонные решения, избегая изящных - как-то не того же 
А про фиксед-поинт и т.п. - в своем продукте тебе ничего же не мешает объединять все это, впихнув преобразование по необходимости (лень расписывать, идея думаю предельно ясна, а конкретных реализаций, когда и как транслировать/сверять, можно нарожать множество, отталкиваясь от реалий проекта). Но тут уже придется слишком перелопачивать движок, и не столько в "шаблонном" подходе, сколько менять его архитектурные решения. Естественно, что на это если и надо было решаться, то в самом начале разработки.
Кстати, а зачем используются числа с плавающей точкой вообще? Обычного целочисленного 64 битного лонга на координату хватит чтоб описать положение тела в нашей солнечной системе с точностью до микрометра.
Вон выше написал, что можно мутить и совмещать. Особенно для случаев, когда точность нельзя терять глобально, но можно пренебречь при отображении. А совсем на целочисленную арифметику перелезть - это игнорировать все то, что заточено на работу с плавающей точкой (GPU да и приличная часть CPU).