The register allocator is based on the linear scan algorithm ( see also short text in the help file - "New global optimizer, function inliner, and register allocator" )
The general idea for this compiler has always been "good enough", but no more. The problem is that this is not a fixed position, and every third year (or whatever) this position is re-evaluated by me. Today the SSA form is generally accepted because it makes many optimizing algorithms simpler - so far I have only added a few (every algorithm takes time to implement and test). Vector optimizations are not done (yet), and many other things will be more important before I get there ...
( One way to find time to improve the compiler would be to drop support for the IDE, and some other uninteresting tools, but since most requests are about the IDE this may not be the best approach... )