The only difference at the big-O level between the "beautiful algorithm" and the above simple algorithm is, the latter takes log(n) steps for sampling versus O(1) (setup and memory usage are the same).
How many problems have n large enough so const1*log(n)+const2 is significantly more than the constant in O(1) algorithm? Not many, I'll bet, especially since const1 and const2 are small due to the simplicity of the simple CDF-based algorithm.
If it was O(sqrt(n)) vs. O(1), this would be a different thing, but log is different.
This is not to diminish the inherent interest in the sampling arguments used, and the existence of a big-O faster algorithm.