Your assumption is correct. The request to enter fullscreen mode must be user initiated. Clicking a button is considered user initiated, but changing a device’s orientation is not. If you add an event listener for “fullscreenerror” (and the vendor prefixed variations), you’ll see your call to requestFullscreen() is firing a fullscreen error.
In addition, starting with IE11, Internet Explorer now supports the Fullscreen API. You should add a call to msRequestFullscreen as well when you use the Fullscreen API. For more info please refer to the MSDN documentation:
http://msdn.microsoft.com/en-us/library/ie/dn265028(v=vs.85).aspx
Disclosure: I am on the team that worked on Microsoft's implementation of the Fullscreen API.