My guess is that it's because the CurrentPage is writeable in that state. It's only when a PageData object is read only that the Property getters will return dynamic properties.
The PageData object never actually contains the dynamic properties, but has a handler that will return the them in the same way as you get "page" properties. But that handler will only be in effect for read only pages.
Per GunsarfsEPiServer CMS Development Team
Sorry, but I've tried CurrentPage.PopulateDynamicProperties() and it throws an error "The PageData object is read-only."
I could ofcourse use GetPage() but since the module will be run on each page request the pagedata would be loaded twice. I've also thought of DynamicProperty.Load, but since that makes a request to the database I'd like to avoid that also.