The rotationField
of a SingleSymbolRenderer seems to get it (QGIS 2.14):
>>> layer.rendererV2().rotationField()
u'angle'
That's the field I'm using. If I change it slightly in the Properties dialog:
>>> layer.rendererV2().rotationField()
u'"angle" / 12'
Interesting. My style definition here is a Single Symbol which shows as a "Marker" with a "SVG Marker" in the style tree. I've set the "Angle" parameter of the SVG Marker component, but the "Rotation" parameter of the parent "Marker" component has also been set as data defined. But if I have two SVG layers in my Marker, I can set one "Angle" by field value and one to have constant Angle and the parent "Marker" doesn't get the Rotation set to data defined. At which point my python above fails to get the rotation of the layer.
So I suspect the other solution posted here might be more correct... When I have more than one substyle of SVG symbol I can get the Angle expression with:
>>> r.symbols()[0].symbolLayers()[0].dataDefinedProperty('angle').dump()
u'angle * 23'