How can I make the list of exposed filters hide options with no existing nodes?
I am not sure if that can be done with views. Even if it can be done, I am sure it will take a considerable amount of coding and I am not sure if it will be performant enough(might reduce the performance).

This can be done easily with Apache Solr module. 


  Faceted search is supported if you use the facet API module. Facets
  will be available for you ranging from content author to taxonomy to
  arbitrary fields.


When you enable facet API with apache solr module, you should get the facets(similar to filters). Facets will be displayed only if there are some results which have the value of the facet in their node.

Note : You will need to set up a Java server to have the Apache Solr running.