I've had problems with profile documents and caching. I've heard of other people encountering the same kinds of issues. My preferred method now is to create a document with a programmatically manipulated the Notes Document UNID, following this tip from Chris Toohey.
You can programmatically get your 'profile document' ID into an applicationScope variable using
session.evaluate("@Text(@Password(|"convertThisString\"))")
Then you can check whether the document exists in the database and, if it doesn't, create it. You can then point the documentId attribute to the applicationScope variable where you save the 'profile document' ID. It's (almost) infinitely scalable and more predictable in its results than a profile document.