Потому что каждый - даже ранняя команда Swing - имеет право время от времени делать неправильные вещи: -)
И неправильно расширять компонент вместо реализации интерфейса рендерераи пусть эта реализация делегирует компоненту (который может быть специально реализованным JLabel со всеми свистками, которые они считают необходимыми, лично я не уверен).Мы все еще страдаем от этого плохого решения о реализации - зловещая «цветовая память» DefaultTableCellRenderer является прямым следствием.
Итак: Do-not-subclass-someComponent-to-Implement-someRenderer.Особенно не для некоторого компонента == DefaultTableCellRenderer, он сломан!
Кстати, SwingX все делает правильно: -)