Пока решил только с JS. Условия:
- Стандартное поведение футера прижатого к нижней границе экрана.
- Никакого JS.
- Высота футера явно не задана.
- Элемент списка
То есть при лоюбой высоте подвала он не заползает на контент, он прижат к низу окна если conent.height + footer.height > window.height.