I think you have a cart before the horse problem here in that when you export a file system using NFS it locks on to the source direcotory. You are trying to not even have that source directory available at that time and only put something there via a mount later.
This will not work, because once you give NFS a handle on something to share, it will always share that thing, even if it ends up underneath a layer of mounts.
Let's say you setup a directory with a file 'frog' and export it with nfs:
[server] $ mkdir /mnt/test && touch /mnt/test/frog
[server] $ echo '/mnt/test *(ro)' >> /etc/exports
[server] $ exportfs -a
Then you mount it on a client somewhere, you will see the file frog as expected:
[client] $ mkdir /mnt/test
[client] $ mount -t nfs server:/mnt/test /mnt/test
[client] $ ls $/mnt/test
frog
Now let's say you mount something else on top of that folder on the server:
[server] $ mkdir /mnt/test2 && touch /mnt/test2/fish
[server] $ mount -o bind /mnt/test2 /mnt/test
[server] $ ls /mnt/test
fish
Spiffy. But what is nfs serving up?
[client] $ ls /mnt/test
frog
You can't even get to that file frog on the server because it's got a different thing mounted on top of it, but NFS is serving up that under layer!
To make a long story short, if you want to export your file systems via NFS you will need to have them mounted up properly at the time NFS starts up and exports them and they will need to stick around. Exporting file systems that are themselves mounted using autofs will never work quite right. You will need to permanently mount those ISOs in order to export them via NFS.
Best Answer
The client sees all of the contents of /mnt/storage, but it does not show the contents of sdb1 when browsing the /mnt/storage/homes folder. It does display any contents within /mnt/storage/homes before sdb1 is mounted there.
This doesn't make sense. There shouldn't be any contents of /mnt/storage/homes before sdb1 is mounted there, right?
Let's ignore the NFS client for a minute and just focus on the server.
Stop your NFS server, how to do this depends on your linux distribution
When you list the directory contents in step 4 and step 7, there should be nothing displayed. The files and folders you expect to be in each mountpoint should appear in step 6 and step 9.
The answer to your question is that you have to export both /mnt/storage and /mnt/storage/homes. If you only have a single client, you can use the nohide option on /mnt/storage/homes to avoid needing to explicitly mount it on the client. See the exports man page for more details. That said, I'd recommend avoiding nohide and mounting both filesystems for clarity.