As you correctly pointed out, build systems can only make portability harder, never easier. They can't write the portable C (or whatever) code for you. Autotools makes portability harder by closing off an entire platform to you (Windows), and by forcing you to write possibly non-portable shell code to do routine tasks.
You can also write shell code in CMake if you desire. 99% of the time, it just is not necessary because the build system, you know, manages the build for you.
As a "bonus" automake-infested projects are impossible to subject to any kind of automated analysis, because of the many Turing-complete steps you need to go through to even figure out what the heck you are supposed to be building. As a further bonus, those steps add 20 seconds of coffee break time to each build, even if you're only building one thing.