The reason why the pin number gets subtracted by 18 when you are using a Leonardo is because I didn't want to break backwards compatibility with third party versions of the Leonardo. Take a look at the original code before my pull request: https://github.com/arduino/Arduino/blob/aba27c43aa1d4ea827c8a07774e7ea398cd7b259/hardware/arduino/avr/cores/arduino/wiring_analog.c#L46-L57
, as you can see it subtracts 18 before analogPinToChannel is called.
I know that I could just have removed it and then fixed it in the variants file: https://github.com/arduino/Arduino/blob/ide-1.5.x/hardware/arduino/avr/variants/leonardo/pins_arduino.h#L133
That would have worked just fine with the official Leonardo, but would have broken analog reading on third party boards using a ATmega32U4 with it's own variants file.
If you still thinks it's a bug, then fell free to open up another pull request that removes this, but I doubt it will get merged because of it's incompatibility with existing third party boards.