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?"
Comments
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
And here...
...isn't this a case of "Duh. What did you expect to happen?"
Yep. and the simple solution is a server-side wildcard route.