Código:
float a=5/2F;
es incorrecto.
En cualquiera de los casos un compilador decente optimizara en la medida de lo posible, a lo mínimo en asignaciones y en parámetros de funciones.
En cuanto al resto, no se trata de "creer". Todo código fuente en algún momento se descompone en lo que se llama "preprocessing tokens" y luego de realizar el procedimiento especifico se convierten en "tokens". Es ese resultado el que se analiza en forma semántica y sintáctica.
Igualmente la descripción de las fases de traducción siempre son conceptuales ya que siempre depende del estándar que siga el entorno que se utiliza y como se lo implemente, pero sea como sea lejos están de ser creencias.
Saludos