For access tagging precedence see https://wiki.openstreetmap.org/wiki/Key:access . 'vehicle' is more broad and contains motor_vehicle so if motor_vehicle is specified too, it overrides vehicle.
The problem was that 'designated' means 'road is specifically meant for all motor vehicles'. It does not mean 'only some vehicle types specified on traffic sign'. So it was not disallowing any motor vehicles.
I changed it to vehicle=private which means only the vehicles allowed by owner (possibly via the signs). Still some routing engines ignore this (and route into the area), but it is now more correct.