Nice!
Allerdings … wenn ich kein Brett vorm Kopf habe, greift das bspw. bei Bänken nicht, weil dort direction die Sichtrichtung und nicht die Sicht auf die Bank ist. Dürfte noch mehr solche Spezialfälle geben.
Für Bänke könnte man sich mit:

node[amenity=bench] {icon-rotation: degree_to_radians((tag(direction))+180);}

behelfen.