Theme functions are designed so that they can be overridden, but the building block theme functions provided by Drupal core should be left alone.
In discussion with a colleague, who provided all the insight paraphrased below, talking about some of the Drupal gotcha's we've seen get talented people not sufficiently indoctrinated into the Drupal way.
With one site, the designer overrode a ton of theme functions.
Like lists. So now menu_list is no longer an ordered list but a gathering of content