Flipping a sprite with the textureRect trick is more than that if x or y is different from 0.
It's actually (x + width, y, -width, height) for horizontal flip, and (x, y + height, width, -height) for vertical flip.
You could also talk about some pros and cons of each method, for example with setScale, if the origin of the sprite isn't its center the sprite will "move".