Never name a theme and a module the same thing

Lets say you're building a drupal website for Bill's Widget Company. You create a custom theme, and a custom module. Now lets also say you are as dumb as me, and decided to name both your theme and module the same thing: bwc. Its a small mistake you'd never make if you thought for a second: "Should my module and theme share the same drupal namespace?" It sounds dangerous, even if you don't know why. Here's why it is dangerous:

The first sign of trouble happened as soon as I added an implementation of hook_form() "bwc_form" to bwc.module. Not only did my form not work, but NO form worked. All forms returned as "array", and frequently had incorrect data types being passed (stdClass's where there should have been an array and vice versa). It was a bit embarrassing how long it took me to figure out the obvious cause:

Since my theme (themes/bwc/ shared the same namespace as my module (bwc.module), the theme system mistakenly interpreted bwc_form(&$node) as an override to theme functions: 1. phptemplate_form, and 2). theme_form.

Hopefully, whoever makes this mistake next will find this answer.