¿Por qué la sobrecarga de la función de la plantilla y la no-plantilla con la "misma firma" llama a la función de la no-plantilla?

Tengo este codigo

template<
    class T = const int &
> void f(T) {}

void f(const int &) {}

int main() {
   f(0);
}

¿Por qué llama la segunda en lugar de la primera? Pensaría en ellos como si fueran iguales, pero claramente no, ya que no recibo un error de redefinición.

Respuestas a la pregunta(2)

Su respuesta a la pregunta