GenerateExportHeader doesn't do anything special that can't already be known before building the project (i.e. a regular, static header file has no disadvantages over it), and it creates issues in MultiArch environments, as the generated export header is compiler dependant (related to #35). See zyantific/zycore-c#41 for an example.
WriteCompilerDetectionHeader already generates issues in cmake-init, as it isn't available in CMake versions older than 3.2; at the same time, the module got removed in CMake 3.20.