Good to see you are exploring the lua scripting

SetRotate(x,y,z) is an exposed system function that is used in the main engine for object direct rotation such as when you use the translation properties to rotate your object in the editor. It sets a fixed position based on the passed values from 0 not a relative position based on the previous rotation, this enables specific rotations to be applied. Whereas the roll is a relative rotation adding the amount onto the previous orientation.
We can not change the behavior of the setRotation() but I can look at making a turn(r,p,y) function to give accumulative roll, pitch, yaw in one function if you need this.