Are there existing module development guidelines?

One of the things I would like to see in particular are some guidelines around content display/generation. So, no hard-coded styles, no hard-coded attributes like position etc.

Ideally, all content should be semantically tagged so that CSS styles can be applied for styling. Each module should ship with a default CSS file, which can then be modified or integrated into the main stylesheet.

Also, there should be naming guidelines for the CSS tags used. I propose class names that look like [modulename]-[structurename]. So, for example, for recipe.module, all the tags would begin with "recipe-". A particular structure example would be "recipe-ingredients". I've submitted a bug about the recipe.module for hard-coding stuff.