sudo и su делают одно и то же, просто их поведение без флагов отличается. su запускает шелл, а sudo ожидает, что после будет указана команда, которую надо выполнить с повышенными привилегиями.
Т.о. sudo su сначала запускает sudo, который с рутовым привилегиями запускает su, который потом с рутовыми привилегиями запускает шелл (не спрашивая рутовый пароль, т.к. su уже от рута запускается).
Чтобы запустить рутовый шелл, вызывать промежуточный su нет нужды, sudo -i как раз это и делает.