Ein bisschen gespielt habe ich schon damit. Es kommt am ende halt wirklich nativer code heraus, da Titanium quasi in einem JavaScript Dialekt programmiert wird. Und Hinter den Kulissen mappt es dann Ihre JavaScript Funktionen mit den nativen Methoden. Sei es Obj-C oder Java etc. Man kann also wirklich einmal schreiben und dann zweimal auf "Deploy" klicken. Einmal für iPhone, einmal für Android. Setzt allerdings xCode auf Mac Hardware vorraus, bzw. ein installiertes Android SDK damit Titanium damit compilieren kann.
Einschränkungen habe ich so nicht wirklich gesehen. Da ich wie gesagt nur relativ kurz reingeschaut habe. Also die gängisten Sachen sind wohl alle da. Und entwickelt wird da ja auch immer noch.
Einziges Problem ist eben, dass man alles in Javascript machen muss. Und dann noch nicht mal reines JavaScript, sonder eben deren spezielle Implementation. Sollten die dann irgendwann doch ihre Bude dicht machen, stände man da mit einer Menge Code, die nirgendwo mehr lauffähig wäre.
Bei PhoneGap hätte man dann ja immer noch eine Theoretisch Lauffähige Webapp. Nur den Titanium Code kann man so nirgens sonst benutzen.
Wenn man es ganz auf die Spitze treiben wollte, könnte man bestimmt die Business Logik in Java schreiben, das ganze dann mit GWT auf JavaScript umsetzen und das dann in Titanium einbinden. Dann braucht man wirklich nur die UI mit deren JavaScript Dialekt aufbauen und die Funktionen dann an die Businesslogik anflanschen.

Dann könnte man also quasi in Java/JavaScript iPhone apps programmieren die am Ende sogar in Nativem Code geschrieben sind.