Ooh, that's a fun one.
Another con: you'd better hope your input contains no duplicates. :)
Another con: you'd better hope your input contains no duplicates. :)
For an efficient implementation, one might want to round L+1 up to the nearest power of 2 to get crucial micro-optimisations based on instructions for bit scanning.
(I think this ends up being a very complicated phrasing of a counting sort.)
I have thought this through (I'm ashamed to admit).