There's a subtle difference. When a road passes *through* a building, that's tunnel=building_passage, and both the road and the building are level=0 (implicitly). When a road passes *under* the building — for example, if the "building" is just a roof, or if it's a building:part that extends from the main building over a road — that's covered=yes for the road and layer=1 for the  roof or building:part.