Kaspars,

Doctype: HTML5 is the way of the future, so using that doctype is just fine. But the use of elements such as header and such, which are not well supported by current browsers, makes little sense. The idea that you have to go whole-hog-or-none is flawed. It’s perfectly valid to use an HTML5 doctype without using every possible HTML5 element.

Lists: Think again, List Items (LI) can indeed contain block-level elements just fine. I think you need to brush up on the HTML specs.

function_exists: No, it’s not a goto solution, it’s a standard php programming technique for making functions that can be overridden. WordPress calls them “pluggable” functions.

Comments: The most important part of a comment is the name and email address. Not the comment. I don’t understand why anybody would think different. Comments are part of a conversation, and the first part of having a conversation is knowing who you are talking to and how to reply to them.