No, a zvol would have been completely inappropriate. If you had just separate subdirectories for each media type, in a single media dataset, you would have been fine.
Volumes, datasets and nullfs mounts are different things. Nullfs is “trapped” in the filesystem being mounted somewhere, so if you have multiple nested datasets you need to create the corresponding nullfs mountpoints.