In short, the answer is yes - CodeXL makes the kernel be built differently.
If the program shows different results with different hardware or implementations especially if floating point arithmetic is being used heavily, like you said, it's probably due to conventions of rounding and such which can change.
When debugging the application in CodeXL, the CodeXL OpenCL server modifies the build flags in preparation of the possibility of kernel debugging. One of the changes made is adding flags that disable optimizations, to allow for a natural-feeling debugging experience (when performing optimizations, the compiler might, for example, re-order code or remove variables that are not needed).
If you see different results with different devices, it's completely possible that you'll see different results with CodeXL vs. without it.
You might want to pass "-cl-opt-disable" to clBuildProgram's flags parameter, and see if the results with and without CodeXL are the same in that case.
Regards,