Level=* on nodes without any other tags: Are there any applications using this?

level tags on the start and end nodes of indoor stairs (and ramps) to distinguish between the upper and lower end

For the routing use case, there’s no reason to distinguish between upper and lower end. It’s clear that if you are currently on level=4 and use stairs that connect 3 and 4, you’ll end up on level=3.

For non-routing use cases, I would expect the second approach to work quite well. A node that’s at one end of stairs and connected to several other ways with different single integer value level tags where both values of the stairs appear is probably quite rare.