Mmm, non capisco bene il tuo intento:
1) Per quel che riguarda le tue preoccupazioni sulla qualità del codice HTML prodotto, o sulla sicurezza dello stesso, NESSUNA attività che sia lato client dà la benché minima assicurazione di protezione o di qualità, MAI. Quindi la sicurezza di queste cose si fa SEMPRE lato server, e con ZERO fiducia su ciò che è avvenuto lato client. Per capirci, lato server ti devi SEMPRE comportare come se chi ha usato il tuo sito avesse scritto a mano il codice HTML nella tua form.
2) Io non farei MAI per NESSUNA RAGIONE una maschera, con o senza editor, che accetti un upload di file da parte di un utente anonimo. Mi sembra un rischio di sicurezza GIGANTESCO, e non vorrei mai, a maggior ragione, che questi file anonimi dovessero essere elaborati dal mio sistema ed inseriti come immagini, sfondi o altro, in pagine pubbliche del mio sito; anche solo l'arrivo di un upload da 4 Gb potrebbe mandarmi in tilt il server, e questo prima ancora che il mio codice php potesse rifiutarlo. Se vuoi inviarmi dei file ti registri, fai login, e puoi fare il submit di una form, con o senza upload, SOLO se mi restituisci il token CRSF giusto, altrimenti per me puoi attaccarti al tram.
3) Non mi è mai piaciuta la gestione di NESSUN editor (nè di nessun CMS, se è per questo) riguardo le immagini, che da SEMPRE gestisco separatamente con mio codice lato server, e che, al massimo, fornisco all'editor come possibile scelta di immagini da inserire nel testo; anche questa però è comunque una occorrenza MOLTO rara e controllata, perché se non la si tiene controllata è facilissimo per l'utente caricare immagini enormi, malformate o anche soltanto troppo alte o larghe per il layout in cui vanno inserite, che quindi possono spaginare il sito; tipicamente, l'utente per quel che mi riguarda carica una immagine che viene usata SOLO come sorgente per la generazione di n miniature di tipi e dimensioni controllate, che sono le uniche poi rese disponibili nell'editor.
4) Hai perfettamente ragione sull'aspetto ergonomico degli upload: nel mio cms ho aggiunto verifiche lato client che controllano che il file sia di dimensioni adeguate, sia di tipi consentiti, sia, per le immagini, di width/height adeguate e nel caso avvisano l'utente PRIMA che faccia l'upload. Nessuno deve spendere banda ed energie a mandarmi un file che eliminerei subito dopo.
5)TinyMCE è personalizzabile in un modo amplissimo, fino ad arrivare a decidere i singoli bottoni in interfaccia, e ha un sacco di plugin disabilitabili che gestiscono un tot di cose, ha persino il modo di definire esattamente quali tag sono permessi e quali no (cosa che io naturalmente ho fatto, e RIFACCIO lato server!).