All definitions in a programming language are evaluated at compile time. The compiler won't know which bmap you want to assign to your pointer at runtime.
This is why the manual states:
BMAPS USED IN ANY OBJECT DEFINITION MUST BE REAL BMAPS THAT ALREADY EXIST.
If you use bmap pointers, you'll get what they contain at compile time. If they contain NULL you won't see much of them at runtime.