Hi,
for angles, you will find that you always have to have a middle man to handle these negative values, so it is definitly possible to use negative angle values, that you then transform back into 0-360 range, the same apply for angles greater than 360, you have to accomodate for this sometimes, unless you are a quaternion guru ( which you can count on your fingers in the worldwide community of developers...), I have seen amazing peices of code that just do incredibly complex things in few lines ( where it takes me a whole framework to achieve... d'oh). So Yes, you need to fiddle around a lot for this.
"Set rotation" defines the absolute rotation of the transform, so if everyframe you "set rotation" to 0,10,0, the transform will not rotate over time, it will simply stay at 0,10,0. NOW, "rotate" will increment your value to the existing rotation, so if everyframe you "rotate" by 0,10,0 then you will animate the transform and will rotate by 10° every frame .
does that make sense?
bye,
Jean