Вот вы сейчас говорите про "надпись на квадратике" или про его сущность?
Приведу пример: в выражении 2+2*2 знаки + и * не содержат явных упоминаний что они умножают и складывают.
Нет специальных знаков для "сложения целых" и "сложения дробных".
И ничего, математики живут как-то, не путаются.
А по-вашему, почему-то нужно разделять float_add и int_add. Зачем?
С чего бы это?
Можете привести пример ошибки, которая будет возникать при универсальном add/sel, и не будет возникать (или реже) на типизированных add/fadd?