Реально ли определять по ip адрес с точностью до района города (Москва)?
У гугла есть очень точная, но к сожалению не публичная база. В google maps api v2 можно получить точную координату (если у вас есть ключ), либо через v3, но в ней нужно поизголятся, так как в лоб координату пользователя не дают.
О альтернативных сравнимых бзах не слышал. GeoIP не предоставляет достаточно данных.
В общем случае нет — у провайдеров использующих NAT или L2TP/PPTP один и тот же внешний IP могут получить клиенты из разных концов города.

Для географической привязки обычно используется информация от сотовой сети или о вайфайных точках.