If you're looking for bottlenecks, what we found out to be the number one bottleneck in most cases is the number property bindings, and excessive binding updates resulting in a "binding spaghetti effect".
QML makes it dangerously easy to create property bindings, especially when combined with state machines, and if you're not careful you can end up having one small property change triggering a re-evaluation of a huge amount of properties.
And those don't come for free, especially on embedded hardware, which can then significantly alter the performance in your application.
One of my colleagues is preparing a detailed article about that "binding spaghetti effect", we'll make sure to post it on this mailing list when it's published online. There's some pretty interesting findings in there.