all of the following inferred/quoted from HFEJB page#610 and page#616
the <resource-ref> tag is used to get a resource manager connection factory reference, through which you get what you really want. for example
in the above you;re getting a reference to javax.sql.DataSource that you can use to get a connection.
the resource environment reference <resource-env-ref> tag is used to get a reference to something called an administered object
like javax.jms.Queue or javax.jms.Topic. The main difference here is that the resource environment reference is to a thing you want, the destination.
'.... the administered object is the destination, whereas a resource manager connection factory reference is just the first step in getting what you really want..'