If modifying the BDOS is out of the question, you can still use a TSR approach (like CP/NET) to overlay the BDOS functions. For example, you can store directory metadata in a special file, have a magic directory for always-available utilities (such as "CD.COM", "MKDIR.COM" and "RMDIR.COM"). This is also how early LFN support was implemented in DOS.
Such an approach would also allow you to support multiple file systems without sacrificing compatibility. For example, a CP/M file system as A: (no directory support) for misbehaving applications and a regular FAT file system as B: (with full directory support).
That much I already have. I wrote my own BDOS and CCP and BIOS from scratch, but I also have routines that allow the DRI BDOS and CCP to be hot-swapped in as an option, so I want things to continue working if that happens. All that should be lost is the commands under the CCP and any future BDOS extensions that I add. The whole architecture allows OS replacement on the fly, or OS switching even, though at the cost of system memory.
My L: drive is a 64K ROM space that contains the bootstrap ( 128 bytes ) and the BIOS and BDOS, which it copies to memory, then boots the CCP via the BIOS reset, which loads the CCP like a regular binary file before handing over control. The CCP looks for executables on the logged drive, then defaults to looking on L: for the file to execute, so adding commands to L: to handle directory structures still maintains compatability if someone switches in the DRI CCP, since they can manually run the L: commands from the command line.
The BDOS during boot time also executes the driver bios routines by looking for specific executables on A:, C:, J:, K:, N:, O: and P:
N: is for Non-Volatile memory, so system updates can be located on N: and boot into a different OS or perform other functions as a standard component of boot time. I reserve the top 8 drives for other purposes. I: is reserved for network drive mounts over IP.
Only drives A: to H: are going to be storage - A: and B: will be a floppy, and C: and D: will be a hard drive. That gives me four drives I can do other things with such as directories if I choose not to keep A: and C: as they are when first accessed under CP/M.
That provides plenty of options. I'm just trying to work out what has been done in the past and how it worked. Also, there's probably quite a few different ideas I would miss if I was just thinking it through myself, so all ideas are appreciated -