As the previous developper of it, there is really no evil plan here from Intel. I just did it the way it is because it was more convenient for me and it was self-contained. Actually, the code actually uses the Nvidia PTX 32 bits ABI / Triple from LLVM :-) and uses a module pass instead of a full by-the-book backend because it was easier.
The goal was really to have something small and not too hard to write and that I can use for other purposes than pure compilation (i.e. HW architecture analysis)
Probably because the Gallium OpenCL support is in a very, very early stage and didn't really exist back when Intel began working on OpenCL. Also, it's often easier to go your own way instead of constantly arguing with developers, which is typical in community projects. Just saying, it's not only NIH.