There's a video of a ultrasonic-collision-avoiding drone. So, in principle, this should work. Also, note the reflector surface used by the guy in the second half of the video - it's not incredibly big (but, indeed, approximately orthogonal to the propagation direction of the finder beam). So, let's count this as "it could work, in principle" - especially, if you put more power into the outgoing sound waves, to pick up the weaker return signal of a drone.
But, as consumer drones already reach speeds up to 72km/h, it looks a bit unlikely that this is will become the go-to technology for avoiding a possible head-on collision. In this scenario, two drones will move in on each other at 2x72km/h, which is 40m/s. By using the numbers of @h22's answer, we get 1/8th of a second between earliest detection and impact. In this time you need to come up with a solution, and you need enough thrust to divert your course far enough to avoid the oncoming traffic.
I'd expect the physical reaction time of the drone - the time until max. diversion thrust is applied - as well as the amount of thrust, to be the limiting factors.
And your generic solution ("it's an obstacle, just fly upwards to avoid") may not work, as your counterpart may have the same idea, resulting in the same collision just a meter higher from ground.