The other way of looking at it is, this is the brute-force way of doing it that works and is probably reliable on lots of browsers.
Trying to do it in "proper" CSS could be fiddly to get right, and may or may not work the same in all browsers. (I don't know off-hand about this particular effect, but I've done some work with CSS gradients recently and they really don't compose well with other features.)