@Tom-asso
I know what you mean, there are instances where I have thought that QML should recognise and apply methods accordingly to iron out various problems, but I am also told on numerous occasions that Qt/QML is a 'declarative' programming language, meaning we must declare everything we want the program/module to execute.
I also admit to rarely using 'Item' in any of my applications so I'm somewhat unfamiliar to its usage. So, yes, it seems that you must tell 'Item' via width/height what has changed or it won't know, why this is the case is unknown to me, I guess it's just the way it is with that particular module......I'm also still very much a 'noob' when it comes to all things QML, despite fiddling with it for the last 5 or more years.