Цитата(jack_avenger @ Mar 24 2013, 20:47)

.... смею предположить что Вы что-то делаете не так.
Это тоже вполне допустимо

Регистры sfr конечно же переопределять задача не стоит.
Тут суть в чем: в файле lib.c лежит универсальный код, нпример реализован LCD, ему нужно работать с sfr (DB0...DB7, EN, RS...), каждый раз, когда этот файл используется (в другом приложении), править хеадер как-то не корректно (наверное). Посему в lib.c есть только объявление sfr переменной (что бы код компилился), а ее инициализация происходит уже в другом файле (e.g. main.c).
Как-то так...