Name defaults according to a certain set of rules if it is not specified, its presence (or lack thereof) should not be used to determine how to treat the lookup. 

I'm not sure what you mean about the DataSource and Conn factory problem? Basically if nothing is specified it should default to the defaults, however if it is specified in a deployment descriptor the DD should override. This should be taken care of automatically by the existing infrastructure.