Что при совпадении тайла с пустышкой получается как бы сервер ответил "нет тайла" - понятно, так и задумывалось.
А вот это "gettext_NoOp('Tile is recognized as empty')" куда должно/может выводиться? Уж не на место ли тайла на экране?!

Что тайлы удаляются из кэша в момент записи в кэш tne тоже разобрались.
Осталось понять в каких случаях будет генериться этот самый tne, точнее при каких именно ошибках сервера и не может ли получится что при каком глюке на сервере вся качаемая область в кэше погибнет?
И что будет с тайлами в кэше если запись tne отключена в настройках? Ведь удаляться не будут (т.к. не вызовется .SaveTNE)?
И не надо ли аналогично удалять старый tne при записи нового тайла?
И что за папочка BanTiles в пару к EmptyTiles? Задел на будущее? Вроде не видел обработку этого списка...