My personal preference is to not release memory at the end of the program -- the code does nothing useful, but can still have/cause bugs if it's done incorrectly.
At the same time, leaving the memory allocated will trigger reports from almost any automatic leak detector, so if you're using one (or ever might) it's generally better to free the memory to keep real leaks from being lost/ignored. Given their prevalence today, it would be difficult (if even possible) to be sure you'd never use such a thing either.