Да, вы можете создавать файлы классов, совместимые с 1.4, с помощью компилятора 1.6 (javac), однако простое выполнение этого не обязательно приведет к созданию кода, который будет работать. Проблема в том, что он все равно будет компилироваться с версией API 1.6.
На первый взгляд, вы не ожидаете, что это станет проблемой, поскольку контракты не должны изменяться, но это - у меня была проблема в том, что новый конструктор, который принимает IIRC целое, был добавлен в BigDecimal (в 1.5) и так во время компиляции был указан вызов этого конструктора, однако во время выполнения этот конструктор не существовал, и поэтому исключение во время выполнения. Вероятно, у вас возникнут такие проблемы, когда методы перегружены, и вы полагаетесь на автоматическое преобразование переменных.
Приложение Javac на самом деле не зависит от версии Java, к которой оно принадлежит - вы можете указать другой API для использования с 1.6 javac, и для устранения любых проблем во время выполнения это должно быть сделано.