as someone building a location based service, why not just store the lat/long in a table column and query for < >? Is it that much more efficient to use a specialized product?
Indeed. I am using Django to build my app and a mysql db with 2 float fields for lat/long. GeoDjango and GIS extensions for mysql seemed like over kill, plus I don't really know what I am doing but it seems to work. Django doesn't have very good support for mongo. Well, the django orm.
To be honest I can see absolutely no reason why you can't use floats as you describe and < , >. Depending on what you are doing it may be a little tricky due to lat/longs being angular values, but over small distances I think this can be largely ignored. (In geosay we have some front end code that sorts out the niceties of the angular stuff)
Once we made the decision to use mongodb, it made sense to use the built in near functionality, rather than roll it ourselves.