Does the target_include_directories() command strip out duplicate paths added?

It shouldn’t matter. The target_include_directories() command internally converts relative paths to absolute before storing them in the INCLUDE_DIRECTORIES target property. It treats relative paths as being relative to the current source directory.