no scheme can address those problems, but what you can get from evdev is that the application doesn't have to know about IR remotes specificly.
the app can watch for 'volume_up', and do the right thing no matter if the button pressed in on a multimedia keyboard, an IR remote, a RF remote, a USB device, etc.
wither you use LIRC or evdev, there has to be a mapping loaded to map the particular keystrokes to particular scancodes.
this is just like keyboards. different keyboards put the letters in different places without the system having any way to detect this. this doesn't prevent the system from defaulting to a common keymap, but providing the ability to load more specific ones.