They are really just a solution to library building tools not liking libraries with no files. This should be handled as an internal detail of the build system rather than making it the responsibility of every developer to know about this limitation.
Possible options to address this (non-exhaustive):
- Make Library() auto generate shim files as needed when a "library" has no source files
- Make the LIBDEPS logic deal with these "libraries" by eliminating them from the dependency graph that scons is aware of and just propagate their LIBDEPS onward.