I don't think you can configure your way out of this. I'm looking at the source code for 3.2.4sp1 - when collections are loaded the EntityType class does this:
Code:
if ( isReferenceToPrimaryKey() ) {
return resolveIdentifier( (Serializable) value, session );
}
else {
return loadByUniqueKey( getAssociatedEntityName(), uniqueKeyPropertyName, value, session );
}
If your collection referes to the primary key of the other entity you get resolveIdentifier. When you use property-ref loadByUniqueKey gets called.
In resolveIdentifier it handles the proxying of the collection. Not so in loadByUniqueKey. In fact the first line of this method says:
//TODO: implement caching?! proxies?!