I've implemented another workaroung, basically i've created a second sprite attached to the player (who has the sine), this Sprite follows the same movements of the player sprite (responds in the same way to the key imput etc), but does not have the sine. When the game needs to know the base angle, i tell it to use the new Sprite's one.
That's not very efficient, but looks effective. i still need to try out your suggestions.