I've always felt that auto-linking should have been disabled by default.
But then I remember users complaining when it is: https://github.com/boostorg/boost_install/issues/54
Note how in both these cases autolink exposes a problem with BOOST_ALL_DYN_LINK not being defined, even though the user is trying to use a Boost .dll. One reason against autolink: It decides the use of static vs dynamic
For CMake it doesn't really make sense to enable it, so this is a user error. You are supposed to link to what you use and the error is usually pretty clear if that happens at all. Same as with pretty much any other library. The unified header directory might mask such mistakes though. libraries depending on a preprocessor define, good luck getting that right in a portable way... Been bitten by that too, although IIRC it was Boost.Test where it wasn't exactly clear if "it" found the static or dynamic libraries especially given that "some systems" have import libraries that go with the dynamic ones but look like static ones.