OK, I did indeed misunderstand you. While what I've stated above is still true (and when you pass an ID to JavaScript, you are passing a pointer, so it can be used elsewhere), you are right that in your example it will not work: because you are not instantiating the component in the first file.
There are at least 3 ways of going around it:
make a signal chain that will pass your pointer along the parent-child hierarchy (this is rather tedious and error prone)
store the pointer as a root context property/ object (requires interfacing with C++, but is otherwise very convenient)
create a QML Singleton (this is a new baby, I think it's available in Qt 5.1 or 5.2)