A problem with environment entries is that they cannot be shared by beans from other homes - even if they are in the same app. Also, changing an entry requires a rebuild and a redeployment.
Which is why said the magic words "If you use an exploded directory deployment". No rebuild. Redeploy issue is no different for env-entry than for a classloader-read property file. The classloader won't know about the properties file change until a redeploy either. The only way you avoid that is if you use file I/O to read the properties file directly, but that is an
EJB no-no unless you use something like fscontext to let the container know about the potential I/O blocks and to get past any (typically only in a production environment) security manager blocking filesystem access.
Definitely true that only one bean home gets to see the env-entry. I'd put that more in the advantage column than the disadvantage. Multiple beans depending on the same properties can be a sign of poor component design or implementation. If a property is that important some other component or component method should be representing that importance.