I seem to have a knack for asking questions that elicit very little response...
I have, however, solved the problem for my purposes and would like to document the basic solution here.
What I was asking for – just to clarify, because it might not have been crystal clear – was how to boot multiple diskless clients over the network from a single central copy of the operating system, whilst sharing my local admin conventions on all those clients, but providing different services depending on the the purpose of the individual client.
As a diagram, it looks like the following:
+------+ +------+ +------+
| App1 | | App2 | | Appn |
+------+ +------+ +------+
|Admin | |Admin | ... |Admin |
+------+ +------+ +------+
| OS | | OS | | OS |
+------+ +------+ +------+
where each tower represents a virtual root filesystem consisting of – in this case – 3 layers each. Because of the layers I think of these as being ogres.
I originally tried – and failed – to create the virtual root filesystems on the clients using Ubuntu's overlayroot package, which uses the overlay filesystem (a type of union filesystem) to construct virtual filesystems out of layers consisting of other filesystems.
I then realised that it would be easier to construct the ogres virtual root filesystems on the server-side. My server is a Synology NAS and it provides the aufs union filesystem, so I did the following:
mount -t aufs -o br=.../App1:.../Admin:.../OS none /hosts/host1
mount -t aufs -o br=.../App2:.../Admin:.../OS none /hosts/host2
mount -t aufs -o br=.../Appn:.../Admin:.../OS none /hosts/hostn
and exported the mount points with NFS. I can boot the clients by specifying the relevant ogre to import and using it as the root filesystem.
In the simplest case this works well. I'm still testing it the more esoteric aspects, but I'm quite pleased with the results so far.