You’re completely correct that currently it is not possible to doubly-import modules for this; the module system assumes that each module is only imported once, and is very allergic to conditional additions or removals from the module list.
The module system is simply not designed to support this - you have to live with importing your “dependency” modules at the top-level - for now, until that RFC @FrdrCkII links progresses.
That said:
Am I misreading the post? @leana8959 seems to already have solved that problem using the NixOS module system - which is to be expected, vertical module integration is perfectly doable with just one module system, you don’t need to nest them.
E.g., this works and is fully “vertical” configuration in the style of initiatives like clan or selfhostblocks:
# configuration.nix
{
imports = [
# Just to showcase that flakes aren't necessary
<agenix/modules/age.nix>
./filesystem.nix
./some-cool-service.nix
];
# Some high-level boilerplate, like `system.stateVersion`
}
# filesystem.nix
{ config, ... }: {
age.secrets = {
mybigdisk.file = ./mybigdisk.age;
};
environment.etc."crypttab".text = ''
mybigdisk /dev/disk/by-uuid/blahblahuuid ${config.age.secrets.mybigdisk.path} noauto
'';
}
# some-cool-service.nix
{ config, ... }: {
age.secrets = {
myapisecret.file = ./myapisecret.age;
};
systemd.services.some-cool-service = {
environment.myapisecretfile = config.age.secrets.myapisecret.file;
};
}
Each of the “services” is self-contained, and can be moved around - even to other projects - perfectly fine, although you cannot duplicate imports. The reason these “dendritic” projects haven’t solved that issue is because NixOS hasn’t, either, they all use the exact same code (from the nixpkgs repo) behind the scenes.
In fact, I believe “vertical” organization like this to be the intent behind the NixOS module system. Just look at how the NixOS modules are organized (though NixOS has another top-level directory to categorize them, and fit things that don’t abstract into “verticals” as cleanly as you would in a traditional software project), it’s exactly like this.
The whole concept to me just reads like different words for fundamental software architecture practices, you might have heard of “lasagna” and “spaghetti” code before - “vertically” integrated code is “lasagna”, y’know, vertical pasta layers, instead of the tangled mess of spaghetti.
Design like this does eventually start running into issues once you have cross-“vertical” dependencies, e.g. if you want to scrape metrics from some-cool-service with prometheus. At that point you start having to weave in hard dependencies between the “vertical” layers. Even if you deploy prometheus to another server, a dependency on a hostname that you need to recover from somewhere remains. Good architecture minimizes such dependencies, but never eliminates them (just like in a good lasagna water from the sauce will cook the pasta, if you want more pasta analogies).
NixOS’ config module arg caters to this problem, but over-use can easily turn your lasagna into spaghetti - e.g. by creating many custom options for abstract, high-level concepts, as many newbies like to do when they learn how to create options. I’m pretty sure there are some still in my personal configurations to this day 
Lasagna is definitely superior to spaghetti, for the record. This is an immutable fact, the code analogy is unrelated.
To be clear, finding someone talking about dendritic here is exactly my problem with it; it seems to come purely from associating a name with an architectural pattern that doesn't need any of the marketing hype or associated projects. Click for the use cases where associated projects *do* make sense and some elaboration.
The NixOS module system by itself only starts struggling when you start worrying about the “vertical” integration of specifically nix-darwin into a NixOS configuration.
At face value attempting to do so makes zero sense, because NixOS and nix-darwin are fundamentally for different operating systems and hence inherently incompatible, but they may describe similar “services”, so people want to integrate the “verticals” of those services, and they want one configuration to span both their desktop computer running Linux and a Mac.
This is at least a legitimate use case, though the marketing and hype around it is way overblown for this niche (and I still believe you could do better than nesting module systems, but that’s a story for another day).
Even integrating home-manager into NixOS or nix-darwin works fine thanks to sharedModules, though people generally don’t understand the module system well enough to use it properly before they start reading stuff - and that leads them to blog posts that talk with a lot of hype about “dendritic”.
I think this post showcases exactly why I believe “dendritic” is largely people discovering that the NixOS module system has really useful properties through the lens of flake-parts (and projects or blog posts inspired by it), without coming to the complete realization that that’s what they’re using behind the scenes already.
ETA: It’s kinda funny that @FrdrCkII mentions that they think the RFC to help solve multi-imports in NixOS could be used elsewhere; yeah, it will be, all these projects share the same code path. Kinda proves my point, I think, you have to fundamentally misunderstand how the projects came to be or function to think that way 