I am the master of obscure syntax

Doesn't work eh? Hmmm. It's supposed to create a temporary result, defined as sfc here, then query that. How odd.

In the case of the first attempt i made, it might be doing some kind of "optimization" by pushing the predicate into the inline view.

It's a real long shot, but maybe ...

Code:
select /*+ NO_PUSH_PRED(Tablex) */ * from
(
select DoCalculate(aLongitude,aLATITUDE,a.LONGITUDE,a.LATITUDE) mileage_calcualted
from TABLEx a
)
where mileage_calcualted is not null
Probably won't work because the hint is really to do with join predicates.

Here's another desperate attempt.

Code:
select * from(select (select DoCalculate(aLongitude,aLATITUDE,a.LONGITUDE,a.LATITUDE) 
from dual) mileage_calcualted
from TABLEx
)
where mileage_calculated is not null