Esiste il modo di modificare il sorgente della pagina visualizzata dal browser.
E' quindi possibile disattivare e/o modificare la funzione di controllo.
Inoltre se io sul mio pc mi creo una pagina web con un form e come action metto l'indirizzo della tua pagina PHP post invio, ecco che i controlli javascript non ci sono.
esempio:
pagina html salvata sul mio desktop (prova.htm)
codice:
<form name="campi" method="POST" action="http://tuosito/controllo.php">
<input type='input' name='nome' value='BelValoreDannosoAlTuoSito'>
<input type='input' name='e-mail' value='caino@pippo.it,tizio@paperino.it'>
</form>
Se nella pagina richamata non ci sono dei controlli sulla validità dei dati inviati e un controllo sulla pagina che ha richiamato la pagina.
E' buona norma nelle pagine che accedono a database e che vengono richiamate da altre pagine, inserire tutti i controlli necessari affinchè i dati che riceve siano quelli aspettati e per evitare possibili attacchi sfruttando Bugs del tuo codice 
- il rischio di manomissione da parte di utenti e' solo teorico (almeno a livello di gestione di siti non bancari/finanziari o simili) o e' concreto?
Dipende, se non hai nessuno a cui stai sulle scatole, il tuo sito non richiama molte persone, forse allora potrebbe essere a basso rischio manomissione.
Purtroppo ci stan tanti "bambini" in giro che per farsi grandi vanno ad hackerare tal piccolo sito per passare il tempo 
- dovrei riscrivere le funzioni js (validazione di Email, contenuti non Null etc), che utilizzo nell' onsubmit, in php per rivalidare alla ricezione del $POST?
no, nella pagina PHP che vai a richiamare devi rimettere dentro i medesimi controlli + altri per evitare altre complicazioni.
I controlli javascript servono per evitare di sovraccaricare il server per nulla ed i controlli nel PHP servono per togliersi di mezzo possibili attacchi.