I looked in the Code, and here's what I found
The class method WHSInvent.reserveInventory() is responsible for WHS reservations.
Now it's funny because, it uses the same class InventUpd_Reservation inside, but somehow ignores the Reservation hierarchy.
Try playing around here, maybe a Parameter (related to hierarchy) is not passed, or something else missing.
I was wondering if MS ignored it intentionally for WHS, but I can't think of a possible reason yet.