If you want to avoid repeating clone process multiple times then you could simply put those artifacts (which i assume share the same package name) into separate folders, and not bother with a 'for' matrix.
But if the clone step doesn't run for too long then the matrix option might make for more clarity in build history and configuration file. Plus the jobs will be isolated from each other's potential side effects. If you wanted to leverage the matrix for such benefits, you could just define 3 values under a configuration: key and then filter for them under a for: node.
The first option is more appealing, but how do I create one build script that produces sperate artifacts? Each of my 3 flavors produces a Release build and (as far as I can figure out) cmake is fairly rigid in its Debug/Release configurations.... and I do need to run cmake for each of my flavors. I guess the build script could copy the Release folder into a new folder that is part of the artifact.