Из-за того, что:
opentopomap=# SELECT planet_osm_point.osm_id as node_id, ST_Distance(planet_osm_point.way, planet_osm_line.way) as distance
from planet_osm_point, planet_osm_line where planet_osm_point.barrier IN ('block', 'debris', 'gate', 'sliding_gate', 'lift_gate', 'swing_gate',
'chain', 'yes', 'bollard') and planet_osm_line.highway IS NOT NULL AND ST_DWithin(planet_osm_point.way, planet_osm_line.way,1) AND
ST_Distance(planet_osm_point.way, planet_osm_line.way) > 0 LIMIT 20;
node_id | distance
------------+---------------------
6335229567 | 0.652256400442125
6383076822 | 0.347329950699121
4879850217 | 0.00176391671509317
6709690309 | 0.217341423964735
6709690336 | 0.113966045827994
5968364270 | 0.350461459255921
3753418376 | 0.00497629672938214
5542250037 | 0.170489284424466
5254177593 | 0.0109934973856311
7783514033 | 0.303132289221544
3713339848 | 0.00241383208866235
5692470541 | 0.00111056901716455
6085601292 | 0.0256974801765485
4732181078 | 0.00199527523212845
5049374719 | 0.00296677284412729
3590207884 | 0.658437988963735
4152133398 | 0.00355684702561035
2349446419 | 0.468091580837245
4367451417 | 0.697566707374447
4367451416 | 0.317517851001572
(20 строк)
Без сортировки и общего количества строк, поскольку тогда нужно очень напрягать базу.
Если посмотреть полученные node_id на openstreetmap.org, то окажется, что некоторые барьеры, которые в первом приближении вроде бы расположены на линии дорог, на самом деле на них не находятся, а отстоят от них на небольшое расстояние, указанное в столбце distance. Это лучше видно в iD. Думаю, к такому приводят какие-то ошибки при редактировании. Но, если не учитывать эту особенность, такие барьеры не будут рендериться.
Не получится. У них минимальное количество пикселей для безошибочного считывания прав доступа. Кроме того, они соответствуют ширине дорог.