Hi Kenneth,
I had similar problem at my work when I wanted to dynamically change message selector at runtime (in annotation). Unfortunately it's impossible. Values provided in annotations must be well defined at compile time and deployment descriptor is processed by container during application deployment. But getting back to example I expected to get some deployment error or at least warning in Glassfish log file but it didn't happen. Also when I sent message to queue with different msg selectors, the MDB didn't consume them. The selectors I tried was colour = blue and age = 10. Generally you should expect some vendor specific message from container during app deployment. But as you see, it's not always the case. The correct behaviour isn't specified in this scenario, so the containers are free to implement it in their way (or not implement at all as life shows sometimes). There is also bright side of this:
it's 100% (ok, 99,9999999%) you won't get question like "what happen if app assembler takes out some restrictions on selectors"

It would be rather "can app assembler further restrict message selector value"?
Thanks,
J