Abstracting away filtering behavior from Oracle SQL Function
Callbacks are totally against the idea behind SQL. It's designed as declarative language which queries describe the task and query optimizer builds composition of sorts, index seeks, merges, etc to meet the query. No any row-by-row processing by callbacks.
Oracle supports overloading, with restrictions http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1738 What do you men it doesn't work? You must place overloaded subprogramms into packages, but it's very reasonable way of bulding Oracle-side soft in any case regardless to overloading. But I agree, it hardly can help with countless filter options.

Yes, application is the best place to build the SQL query depending on multiple user choises (filter by price and color, or by year and brand, ...).