Aloha Dmitry, thank you for your blogs they are very informative. I ran into the same problem you had with the rotation messing up the translate. When you rotate an object your direction will rotate with it. So if for example your forward was down and you rotate clockwise, your new forward will adjust clockwise depending on you roration speed.
The easiest solution I found after researching online was simply have the sprite of the object you want to rotate in a Child Gameobject of the powerup. Have that Child rotate only and the parent move in the direction you want. This prevents the rotation from messing with the directional movement you want. I did this today when creating random rotating small asteroids that pass by every once in a while and it worked well.