I know this thread is a bit stale, but I thought I'd chime in with my recent findings on this topic.
Ironically, the problem with the compass is actually caused by running the G-sensor calibration. For any phone that has never had the calibration performed, the compass will more than likely work flawlessly. If you run the calibration even just once, you'll essentially hose your phone's compass performance and any app that uses it (including Google Sky Map). The compass will actually still work with any of these apps, but only after you first shake/move the phone around significantly (the "figure 8" trick). Once you close the app though, next time you run it or any other compass-enabled app, you'll have to redo that shaking/figure-8 routine. Yes, this is a pain and certainly not desirable... I'm pretty sure it's a software/firmware bug, since a hard reset does fix the problem.
I've confirmed this behavior on 2 of 2 EVOs, so I'd bet it affects all EVOs. I'm currently running Android 2.2 with the latest 3.29.651.5 build, although I think this problem affects earlier builds, too.
I haven't tried to convince anyone at Sprint, HTC, or Google of the issue, since I'm not sure how to get ahold of anyone even remotely close to the "right" person. Customer Service and Sprint's phone tech support certainly are not the right people. If anyone has any ideas or knowledgeable tech contacts (HTC is probably ultimately the right place), I'd love to bring this to their attention.