Try to see the reverse of the coin. For distros like gentoo, packages are splitted. So, if everything are enabled by default, ebuilds should disable _every_ unneeded stuff, for each package.
That is how the process should work. Let the downstream packagers handle what they want. As upstream providers we need to ensure everything works.
cmake should not try to detect things at any cost. Everywhere is possible, is used pkgconfig.
So basically we might still need to use the -DINCLUDE_DIRECTORIES option should the pkgconfig file be incorrect.
Will the build halt when I specify -DWITH_SPEEX, don't use -DINCLUDE_DIRECTORIES, and cmake can't find the speex header files?
Darrell