A combination of CSS transforms, opacity, gradients, and -moz-element (https://developer.mozilla.org/en/CSS/-moz-element) allows you to do this in Firefox. I prefer Mozilla's method over WebKit's since it gives you more control: -moz-element is basically a way to replicate any element (even cross-domain iframes!) and apply any transform you want.
The idea behind vendor specific items is that people can play around with things after vendors introduce them in an attempt to get traction for wider adoption...
IE6 in my experience was less hated for this than for implementing the box model differently.
I don't have to use vendor specific extensions unless I want to play around on the cutting edge. I have no easy way to work around the different box model in older IEs.
The vendor specific thing allows vendors to do widespread bug testing. People who coded border-radius expect it to work, and (I'm not 100% sure of the current state of that) people who wanted it before they were sure it worked had to do -webkit-, and -moz-, etc. They should understand that the vendors aren't 100% sure they coded it right. This way, if someone finds a bug with -webkit-, they don't have to worry about breaking websites by changing it.
What will happen to all those -webkit and -moz declarations in the wild once a feature gets added to the standard? Will all browsers be expected to observe -webkit-feature-foo or -moz-feature-foo as though the author intedended to use feature-foo with no vendor tag? It seems unlikely that all authors will go back and update their code once standardized.
It's the website developer's responsibility to switch it over.
Using them in the first place is saying, "I want to use cutting edge features that may change and break at any time." Being removed and replaced with the standard version is just a special case.
But it doesn't hurt to use multiple versions, so most people just specify it for each browser and the standard. The browser will ignore the ones it doesn't understand. For example, this works:
div {
-webkit-border-radius: ...;
-moz-border-radius: ...;
border-radius: ...;
}
That's because it is non-standard, and it's supposed to be. The author gives a short description of the compatibility, starting with Chrome at full support (webkit), to Firefox (some supported features), to Opera (no extra support, but basic functioning remains). The good thing is that even without webkit, it won't just stop working altogether, but you really won't have it optimized.