This preprocessed source argument is a strawman, as hinted by your own sarcasm about a "more holistic experience". A VCS and the C preprocessor have completely different input and output, and especially produce completely different transformations.
The preprocessor is going to introduce lots of duplication in the output compared to the its input. It is not going to simplify modification in any way, except possibly if the non-preprocessed source code is already obfuscated in some why (e.g. one line per file with lots of #includes). So, the first step in performing a modification is not going to be "build the preprocessed sources".
The first step in performing most modifications from a "tarball+patches" form will be to get the sources with all patches applied. This is enough to show that, even though not distributing the history may indeed remove some interesting information, the two scenarios are completely different.