In your example, the base group requires filesystem. Full stop. The fact that it also requires glibc which in turn also requires filesystem is beside the point. If there were some drop in replacement for glibc that didn't require filesystem (not really possible in this example), the base group would still need filesystem itself.
Or another way of saying this: if A dependens on B and C, and B depends on C and D, then all of the following are true:
1. D is a transitive (and only transitive) dependency of A and thus should not be listed in A's depends list.
2. B is a direct dependency of A and thus must be listed in A's depends list.
3. C is both a transitive and direct depednency of A and thus must be listed in A's depends list. Failing to list it would be making a faulty assumption that it will always be installed just because it is (also) a transitive dependency.
As an example:
foo depends on bar & baz
bar depends on baz
One should™ not remove baz as dep of foo just because bar depends on it.
What if it stops depending on it?
What if it starts using blap instead of baz?
So, even if it's redundant, every package should™ state every single one of it's dependencies, with the expection of base-devel for AUR packages it seems, but that is another topic.
...
But base is just a metapackage defining sane minimum defaults for what is ArchLinux.
It's not written in stone and it's not like your system will die if you replace coreutils with busybox, or systemd with openrc.
(Of course, as long as YOU do it, not somescript™, but that is another topic)
I was familiarizing myself with some of the official repository structure, and noticed that the base meta-package has both filesystem and glibc as dependencies, so it calls both for installation when base is installed. However, glibc also has a dependency on filesystem. So why not just have base install glibc, which should then trigger filesystem to be installed as a dependency? I know the end result is the same, but was curious as to the reasoning to do it one way over the other. I'm sure there are probably other examples of this for other packages. But in this case is there perhaps some concern that one day a glibc will be written that no longer explicitly depends on filesystem, but the filesystem package ought to be installed on every system regardless?
]]>