This isn't some magic from AngularJS, it is a standard HTML5 API and it's been around for a while. It is designed to allow single page applications to use beautiful URLs.
So, this isn't an AngularJS gotcha. Not at all. You can read more about it here: http://diveintohtml5.info/history.html
> The reason why refreshing your browser breaks HTML5 mode is that all the routes in your AngularJS application are not real. Release[Board] doesn't have a /releases page. AngularJS is using some clever JavaScript to make it seem like a /releases page exists. When the user hits refresh, the browser tries to load a real /releases page, which is non existent. I find this a completely unacceptable user experience.
...isn't this a case of "Duh. What did you expect to happen?"
Switching between HTML5 and 'hashbang' URLs lets you run apps in environments which lack support the history API or absolute URLs. Examples include old IE and Cordova. The bit of webserver config necessary is a non-issue, imo.