I'm curious what the intent and actual implementation of the feature was.
It's meant to identify diskettes. Much like volume names on DOS or similar on other OS. In fact, Apple DOS was ahead, as automated checks were build in.
(For implementation details see below)
All commands will check the volume parameter, as the DOS 3.3 manual states on page 23:
trying to CATALOG,S6,D1,V123 on a floppy formatted for V254 would still happily display 'DISK VOLUME 254' despite the 'V123' command argument.
Well, CATALOG
is the exception to the rule. After all, it's always rather useful to see what disk one has. To learn this one would need to turn to page 24:
On a hard disk, however, I recall having 4 DOS 3.3 volumes (of 400KB size FWIW) on my Sider HDD
Only 4 seems little. A 10 MB Disk would literally use up all volume numbers when set up for DOS :) Sure you're not referring to the partition? Sider disks had the speciality of having to have 4 partitions, one each for DOS, ProDOS, Pascal and CP/M. T>hey could be made smaller if not needed, but had to be present.
and using the volume argument would access specifically volumes 1 through 4.
Yes, a SCSI driver interpretes the volume number different. Standard DOS diskette RWTS compares it to the one n disk and rejects operation if not the same, while the SCSI RWTS takes it as parameter for volume selection. It will only return a volume error if the one specified doesn't exist - i.e. higher than the max volume number for that disk.
That being said, I also don't believe I used a special version of DOS 3.3 to get this behavior from my Sider hard drive.
No. It's standard behaviour, just with the volume parameter interpreted different by the driver.
So I can presume the intent was for hard disks,
No, DOS was written strictly with Disk II type floppies in mind, that is the original 114 and later 140 KiB formats. Already later 640 KiB drives had to add specific enhancements.
Was the code more in DOS or the controller?
Basic DOS was fully RAM based, after all, the 256 bytes of boot ROM weren't something to consider. Harddisks had their own, manufacturer specific ways.
Implementation
and actual implementation of the feature was.
For high level access the volume number is stored as part of the disk description in the VTOC sector (byte 7 of sector 1 of track 17).
(Picture taken from Beneath Apple DOS, May 1982, p.4-2)
With DOS formatted diskettes volume marking is ingrained into the basic track formatting as it's encoded in each and every sector header:
(Picture taken from Beneath Apple DOS, May 1982, p.3-7)
The volume check itself is handled by the devices low level driver via the RWTS API. RWTS stands for Read or Write Track and Sector (*1).
RWTS operation is based on filling an Input/Output/Block (IOB) with desired function number and their parameters. On entry the intended volume number is put at offset 3. On Return the found volume number is at offset 14. If those don't match the operation will be aborted and returned with an error code of $20 at offset 13.
Catalog will always store $00 which acts as wild card, while all other commands use whatever was given or $00 as default.
*1 - It's the very code Steve Wozniak wrote for the Disk II drives - and improved for the Pascal System.