The feature ScreenOrientation is used to generate code for a target, where the physical orientation of the framebuffer does not correspond to the mounting of the display. In this case, the code generator takes care that all resources are generated in the final orientation that corresponds to the alignment of the framebuffer. As a result, there is no rotation needed during runtime and the performance is the same in all four possible directions.
However, this screen orientation is fixed at compile time.
If you want to rotate the content of your user interface application dynamically during runtime, you have to use the class Views::WarpGroup in order to rotate the conent of an entire group. Please be aware, that this might consume a lot of CPU power and additional memory...
Alternatively, if your product just uses two orientations that do not change during runtime (e.g. a landscape version and a portrait version), you can integrate two applications into your flash memory and start either the landscape binary or the portrait binary.
I hope this helps...