We've been supplying the default values in the call. If there are cases where very few calls override a default value, consider making an instance of the function that drops the parameter and uses the default.
Postgres supports function overloading so one can, with care, supply a handful of overloaded variants that have the same name. For functions that aren't often used I suppose the "defaultified" version could just call the full version, but for those that get heavy traffic code duplication is probably a better solution.