I don't know the best way to do this, but since nobody has offered any advice I will share a method I just discovered that makes this possible, albeit not as convenient as I might like.
It is possible to create a virtual file in memory, add a link to an object in an external file, and add a region reference in the virtual file that points to a region in the linked dataset.
This works something like this:
mem_obj = h5py.File(name='mem', driver='core', backing_store=False)
mem_obj['link'] = h5py.ExternalLink(file, "/path/to/dataset")
reg_ref = mem_obj['link'].regionref[a:b,c:d,:]
subset = mem_obj['link'][reg_ref]
I'd still love to hear anybody's suggestions if there is a better way to do this.
In addition, I think it may be worthwhile to add some functionality that makes it easier to accomplish this. In my work I may often want to use a subset of a large dataset for testing or to estimate statistics, and it is nice to be able to retain pointers to these data without having to modify the source file to add a region reference.