Хочу с помощью :nth-last-of-type(1) для последнего li отключить :after.
Как правильно сделать такую структуру? Вот такое не работает, что и не удивительно)
А вообще внутри ul увидеть что-то кроме li нельзя, из чего следует: последний дочерний элемент будет li. Это дает возможность использовать :last-child без опасений.
Роман: Двойное двоеточие тут не при чем, важно порядок правильный расставить.
В CSS3 псевдоэлементы стали обозначаться двумя двоеточиями, чтобы синтаксис отличался от псевдоклассов. В CSS2 они обозначаются одним двоеточием. Браузеры, как правило, понимают оба синтаксиса.
Поэтому можно : и :: использовать.
Роман: А порядок исходит собственно из логики "выбираем сначала последний элемент, а потом к нему добавляем афтер". В твоем же варианте наоборот вышло.