I've played with some real data (half a million cities around the world from http://dev.maxmind.com/geoip/legacy/geolite/) and have really got great perfomance gain when using sargable geo rectangle predicate against plain point1.STDistance(point2) < ...
Nothing unuexpected, just optimizer can use indexes. It requierd some dynamic sql.
Let me know if it is intresting for you.