HI,
I've just re-check it right now, and You are right - it works, but only if You will executer getID() method. I was just checking object's id property (because it doesn't have leading underscores I assume, that it's public, or rather not consider internal) and it hadn't work. (And off the topic I guess pages without sitelinks should be properly handled - right now there is NoPage error, instead ot that, I guess, it should create new item in wikibase repository)
I believe, that for the sake of laziness We should make all object property considered internal and give access to them by some getters/setters - right now it's a little bit confusing. I thnik the same about get() method - it shouldn't be externally execute, I know, that it will break lots of code, but after that it will be lot less confusing.
And another question: is there any way to create simply just new ItemPage? I could not find it (neither in trunk not rewrite branch). Right now I found some workaround for trunk. It gives me some warnings, but it works.