Dunque, partiamo dal presupposto che un linguaggio di marcatura (quale è HTML) serve a descrivere il contenuto, non a presentarlo.

Una struttura HTML, quindi, di per sè non genera alcuna visualizzazione. Quella a cui siamo abituati è dovuta ad un foglio di stile standard, pre-installato nel browser.

Questo foglio di stile, generalmente, genera un ritorno a capo dopo la chiusura di elementi di tipo block (<form> è tra questi). Tuttavia, tutte queste regole sono modificabili da noi progettisti, utilizzando CSS.

Vuoi che sotto ai tuoi form non compaia nemmeno 1px di spazio? Imporrai una cosa del genere:
codice:
form { margin-bottom:0 }
Il concetto importante che credo sia il caso che tutti imparino è che, come detto, il markup descrive, non presenta: a questo ci pensano i CSS.