> If you try to break it up into multiple Makefiles, you lose all of the benefits of a single connected graph
Only if each Makefile is treated as a separate rule set processed with a separate make invocation.
> Read the article about why recursive make is harmful
That (now) venerable, old paper in fact shows how to break up into multiple makefiles (called "module.mk" in its examples) which are included into one graph.
(It's possible to actually have this file be called Makefile. Not only that, but it's possible to have it so you can actually type "make" in any directory of the project where there is a Makefile, and it will correctly load and execute the rules relative to the root of the tree.)
Only if each Makefile is treated as a separate rule set processed with a separate make invocation.
> Read the article about why recursive make is harmful
That (now) venerable, old paper in fact shows how to break up into multiple makefiles (called "module.mk" in its examples) which are included into one graph.
(It's possible to actually have this file be called Makefile. Not only that, but it's possible to have it so you can actually type "make" in any directory of the project where there is a Makefile, and it will correctly load and execute the rules relative to the root of the tree.)