IL isn't binary code (simply by definition, IL == intermediate language). It isn't a big difference to have your source in C99 OpenCL or IL as most time consuming part is "IL to device ISA" compilation.
And at ISA level there are small differences (of course if you aren't using any R8xx specific instructions otherwise it'll be big differences) between R7xx & R8xx. There are even differences between 710 & 770 binary code or -- in general -- between any targets enumerated by CALtarget in cal.h.
now when you can get binaries through clGetProgramInfo() and load it through clCreateProgramWithBinary() it make me wonder about compatibilite between R7xx and R8xx. when i look inside returned binary i found IL code which should be compatible between different ATI GPU. or each GPU has own IL code? and what about Juniper and Cypress.
IL is forward compatible. i.e. IL generated with older cards should compile with new cards but it might not work the other way.