I tried following a course on a challenging off-trail section on a mountain terrain that involved crossing a large talus field on a steep slope and other similarly challenging terrain. There was no visible trail so I stayed on the map screen the entire time to make sure that we followed the planned route.
The main problem is that every time I looked at the map, more often than not, it was oriented incorrectly, often in the opposite direction. That made it very difficult to reason whether we were to the right or to the left of the planned path. Thankfully, I was able to tell that the map was rotated 180 degrees because of the small directional arrows on the course. But still that was very annoying experience. I understand that at higher speeds the map orientation comes from the vector of movement, however at some slow speed threshold it switches to the compass as the source of the map orientation, and that frankly doesn't work the way it should.
I should mention that the compass was calibrated. If I stopped moving, eventually the map rotated correctly. That was taking a long time, meaning that I couldn't really be using it on the move the way I expected for as long as we moved slowly.
As an experiment, later that day I tried to use the compass app outside of an activity. I found that while the compass is very fluid and responds well to the direction, if I lower the arm that I wear my watch on down, and then bring it back up, in all 100% of cases the compass gets upset. Even if it was already pointing in the right direction to start with, in a couple of seconds it turns to a seeming random direction, usually 90 degrees from the correct one, then it takes another couple of seconds for it to correct itself. One would think, if the arm is lowered and the watch face isn't pointing up, it would be reasonable for the compass to not take the measurement and just stick with its current direction.
Or perhaps there is some other solution - what Suunto calls 3-D compass - Suunto mentions that the compass is tilt compensated so that lowering the arm down doesn't upset it. Why doesn't Garmin implement something similar?
According to this page, Garmin compass is also supposed to be tilt compensated, but in my experience it isn't how it works.