How to work with Scalable Vector Graphics (SVG) in HTML 5
mrbool.com
mrbool.com
And pretty sophisticated JS libraries have been built to make use of this technology in web applications. The best IMHO is d3.js: http://d3js.org/
According to link below [1], NYT ported d3 to be 90% canvas because of speed issues in FF.
[1] http://www.quora.com/D3-JavaScript-library/Why-is-D3-so-slow...
So I tend not to use opacity in my JS rendered SVG especially if there are any animations.
Having said that, there are times when pure SVG is preferred, such as when JavaScript is not available (although SVG files can contain JS) or when you don't want the processing overhead of a library. For example, SVG is often used to render the UI graphics for navigation menus in TVs which until recently were very low powered.
Of course, it's also beneficial (IMO) to have a grasp of how the underlying language works even if you use it through a layer of abstraction. Overall, though, I'd use Raphael unless you have a reason not to.
EDIT: I forgot to add that knowledge of SVG is useful for editing images in a text editor, such as when you want fine-grained control or you want to manually remove some of the cruft that graphics software tends to add to files.