certo, desktop e mobile avranno differenti forme di utilizzo
Se al 90% sono diverse, non ha senso farsi venire i mal di testa per cercare un tool che li accomodi entrambe. Se sul desktop puoi usare Electron, sul mobile puoi usare Flutter. Questo sempre perchè non esiste ad oggi un tool che funzioni bene bene sia su mobile che su desktop.
Pensavo a Python e freeze oppure un runnable Jar con Java, (Xamarin tra l' altro è open a livello commerciale?), mentre C++ e QT non mi ispira molto per C++
Il tuo problema non è il linguaggio ma un widget toolkit e preferibilmente un toolkit che astragga alcune funzionalità di base ( camera? touch? ). Python è una mazzata da far girare su mobile. QT non è solo C++ ma anche Python e altri linguaggi.
Per mobile, anche Kivy non è malissimo (anche se probabilmente è più per giochi o cose del genere)
Kivy manca di un widget toolkit avanzato. Per i giochi va benissimo, per le app ti devi costruire l'UI da solo.
Cordova e HaXe, probabilmente i più usati, creano direttamente apk e ipa?
HaXe genera app nel formato preferito della piattaforma di destinazione. Cordova pure ovviamente, ma Cordova è un browser con dentro un sito web. Le prestazioni vanno a farsi friggere. A questo punto usa React Native che fai prima e meglio.