Because
Code:
int foo(int bar)
{
...
}

int quux()
{
  foo(10.5);
}
is legal, so the compiler doesn't know if the second call to area() is to area(int(10.5)) or area(float). The cast removes the ambiguity.