As the article points out, legally there is nothing wrong, they are perfectly in line with the GPL and anything it was meant to protect.
That doesn't take away from the fact that (apparently, it's not like I know anything about it...) some actions are being taken to make it more difficult for downstream 'users' (as in, repackagers) to make their modifications. Not impossible, just more difficult.
Unless they start renaming files, interfaces, functions and structures for no reason, it's really trivial to start with tree A and get a set of differences between it and tree B.
Almost a decade ago, I wrote some utilities that did exactly that, for merging and finding commonalities between the many (almost a dozen) different versions of the C programs that ran on our electronic voting systems.
> now figure out which patch each of those differences belongs to
Why would I have to do that?
And don't forget we not only have the current tarball, but we can analyze every release for differences, capturing some history with it.
Reconstructing each original patch may not be possible (it's an interesting problem), but reconstructing a set of distinct patches is. Humans would then be better at assigning meaning to them, even if it means calling Red Hat's support line and paying for the answer.
There is a difference between disabling a Red Hat patch and a group of changes between a set of files. Separating the large diffsets by fileset alone may provide good cues as to what they do.
That doesn't take away from the fact that (apparently, it's not like I know anything about it...) some actions are being taken to make it more difficult for downstream 'users' (as in, repackagers) to make their modifications. Not impossible, just more difficult.