Рекурсия. Обходим дочерние элементы, смотрим уровень вложенности:
const walk = (el, level = 0) =>
[...el.children].reduce((p, c) => {
c = walk(c, level + 1);
return p.level > c.level ? p : c;
}, { el, level });
const getLastDeepestElement = root => walk(root).el;
Если же под последним самым вложенным подразумевается элемент, получаемый постоянным выбором последнего вложенного элемента, то тогда так:
const getDeepestLastElement = el =>
el.lastElementChild
? getDeepestLastElement(el.lastElementChild)
: el;
// или, без рекурсии
const getDeepestLastElement = el => Array
.from(el.querySelectorAll('*'))
.pop() || el;