I see that you traveled on Swiss. I know that on the sCO aircraft, they have bassinets in the premium cabins and people needing them have first rights to them, even over someone who previously selected those seats. While a lap child must be in the lap while the seat belt sign is on, it makes for a much more comfortable ride for the parent and the child for the remainder of the trip, which I'm sure makes for a much more pleasant trip for everyone else in the cabin as well.
Since these bassinets are available, I don't see a need to require a seat purchase for a lap child, but if they were not available, I would think that the requirement to purchase a seat is a reasonable one.
While I don't know about most other airlines, note that UA is in a unique position with this, because (roughly) half of their long haul aircraft have them in premium cabins and half don't, and this flaw was not intentional or self inflicted, but brought on by the sCO equipment having them, and the sUA equipment not having them. I believe the new Polaris configured aircraft will have them, and since the sUA aircraft will be going that way first, this should alleviate this problem in the future.