There's more than just GNU make, autotools is a mess as well and the coreutils code has many features but the code is still a nightmare to look at.. GNU doesn't really have a great track record for readable or extendable code but I guess this is due to the age as well.