Czy widziałeś projekt NHibernate.Spatial ? Może to zapewnić łatwe rozwiązanie Twojego problemu.
Alternatywą jest stworzenie własnej implementacji ICriterion - nie jest to zbyt trudne, jeśli wywodzisz z AbstractCriterion i kierujesz się na swoją konkretną platformę bazy danych. Umożliwi to następnie połączenie funkcji odległości z innymi kryteriami.