That's correct. Towers are not shapes, they are vertices of the wall polygon. If such vertex is also a point of a road polyline, then it's a gatehouse.
Would it be much work to include them in the GeoJSON? So as to not repeat a calculation step and do tangent calculation?