My understanding is that the context sensitive refers to the context of where the target holding the generator expression is created, not where it is evaluated.
For the case of COMPILE_LANGUAGE we don’t want to capture the context of the creation but want to always use the context of the users ( HadContextSensitiveCondition == false )
So it is entirely reasonable to create a language based genex in a context that doesn’t have that language enabled, but is only evaluated in contexts that have the language.
project(example LANGUAGES NONE)
add_subdirectory(producer)
enable_language(CXX)
add_library(consumer STATIC main.cxx)
target_link_libraries(consumer PRIVATE producer)
Where producer has:
add_library(producer INTERFACE )
target_include_directories(producer INTERFACE "$<$<COMPILE_LANGUAGE:CXX>:${CMAKE_CURRENT_SOURCE_DIR}>")