Here are some thoughts:
If you are going have designers working on the html it may be easier to use templates such as the one that comes with phplib which has some articles on the subject at this site.
If you code the html inside the function then every time that html is updated you have to update it within the function which would be a pain. You could use 'include' in side the function to just include the html file that the designers edit which would get around this problem.
Using the function approach however, you have to edit all of your parts (header, footer, main content)separately. If your designers use something like Dreamweaver then they can't easily view the header, footer and any other constant grahpical theme on the page at once. They have to edit it in pieces.
Using templates you can have the header, footer, side navigation, etc in one file that can be edited by your designers in a visual environment and which simply has a {mainContent} tag which is replaced with whatever the content is for that page. I find it to be much easier to maintain and edit. HTML edits don't require any modification to the PHP code and vice versa.
As far as the config file goes I tried using it for fonts and colors before but that didn't last too long. Your pages will always look weird to your designers because they won't have the correct fonts or colors when they edit them. You can use CSS or sometimes a good old fashioned search and replace works great when the time comes to change a font or color on the entire site.
The function approach may be faster than the template approach as far as execution (I haven't done any benchmarks between the two) but if you are caching your templates using something like the caching classes by Jesus Castagnetto available at: http://phpclasses.upperdesign.com/ then this wouldn't matter as much.
Anyhow, I prefer the template approach myself.
Trevor DeVore
Blue Mango Multimedia
www.mangomultimedia.com