The issues with ultrasonic are several.
It has a wide beam, and therefore takes the average distance of several things in front of it.
For a small robot, this could be disastrous, as when it approaches a corner it will see the average of a close corner, and the wall behind it.
Lots of running into small objects that way.
Also, as you mentioned, it has issues with special surfaces. (carpet, metal, etc). Our laser will have issues with mirrors, but that's about it.
The limitations of the ultrasonic are inherent to the technology. Sound waves have to propagate in a wave front.
To improve on this would require an array of emitters to do a phased array
http://en.wikipedia.org/wiki/Phased_array which would turn out to be significantly more expensive.
The last issue is range and precision, we should be able to get better values on both.
Lastly, we are currently looking into using a line laser, thereby providing a immediate 3D scan of the area. This is something you could never do with an ultrasonic.