Per il punto 1, mi sa che ho fatto un po' di confusione ... scusa.
Punto 3.
Intanto non e` vero che non sono vietati, eventualmente sono tollerati se non si puo` fare altrimenti (cioe` su pagine vecchie), sia dalle WCAG1 che dai 22 requisiti della 4/04.
Comunque sono un uso errato di una struttura esistente: le tabelle servono per intabellare i dati, quando c'e` una relazione sia verticale che orizzontale. Se non puoi definire un titolo sia per le righe che per le colonne non sono da usare.
E non solo per l'accessibilita`: anche i motori di ricerca iniziano ad usare la marcatura e gli altri elementi semantici per la catalogazione delle pagine, ed in futuro sara` sempre piu` spinto (vedi ad esempio le considerazioni sul Web semantico).
Punto 4.
A questo punto usare <table> dentro un altro <table> e` quanto di piu` assurdo ci sia: per l'accessibilta` (un lettore di schermo inizia a descrivere le varie celle della tabella esterna, poi si addentra nelle celle della tabella interna: l'ascoltatore a questo punto si e` perso, se non e` un computer pure lui), per la catalogazione da parte dei motori e anche per la resa nei brwoser "leggeri".
Punto 5.
padding, margin e border applicato alle celle. E` una cosa di cui si e` parlato molto qualche tempo fa.
Punto 2.
Occorre verificare a cosa si riferisce il 100%: deve essere definita la larghezza del blocco che lo contiene, e se la larghezza e` essa stessa una %, la cosa e` ricorsiva, fino al <body> e all'<html>.
PS: il tag <submit> non esiste, per cui nemmeno il selettore che c'e` in fondo al tuo CSS