How can I shorten Facet API urls programatically?
You want facetapi_alias.

The facets already have a setting "facet alias" internally, which can be different from the facet machine name.
But this setting is not exposed in the UI natively.

The FacetAPI Alias module simply exposes this setting on the facet display form.

If you want more advanced solutions, you could use facetapi pretty paths (as you mentioned), or write your own FacetapiUrlProcessor. I have done the latter, and I can tell you it was painful :)