Health bouncing has existed in some form since beta. It is my understanding that the client and server both perform resist checks & damage calculations. The problem being that the two don't align, even though they both have the ability to deeply impact your situation. Broken legs that aren't broken, amirite?!?!

If you do happen to die due to a calculation issue where a mismatch has taken place, if the server believes you are still alive, you can relog and your char will indeed be alive.

This is legacy behavior from the days when compute, latency, and bandwidth demands were insurmountable for everyone but industry leaders like IBM & MS. You had to give the client some amount of responsibility when your pipe was 10megs at absolute best and your entire server farm was built on Willamette or Northwood-based Xeons that were great at heating up a room but left a bit to be desired otherwise.