Как в терминале реализовано перемещение курсора?
Управление курсором, как и многими другими штуками в терминале, осуществляется через escape sequences.
Почитайте: Console Virtual Terminal Sequences
А теперь вопрос, правильно ли я понимаю, что при вводе например первого символа f из foobar фактически в powershell вводятся следующая последовательность: \b\b\b\bfhey1 ?
Нет, вы неправильно понимаете.
В powershell(а, точнее, в поток) уйдёт чистая строка. все перемещения курсора и тд не имеют никакого отношения к потокам ввода\вывода.
В поток введённые данные отправятся после enter.
Командная строка(терминал) - это куда более сложная сущность, чем просто комбинация потоков ввода и вывода.
а конкретно в powershell это ещё и разбавляется встроенным модулем подсветки синтаксиса PSReadline

P.S.
И, если уж быть полностью корректным, то Write-Host - это именно вывод в хост(терминал), чисто в поток вывода powershell оно не попадает. Для вывода в поток есть Write-Output. А то, что вывел Write-Host, попадает в поток вывода, который вы, например, можете записать в файл, уже из терминала.

Попробуйте в консоли Powershell:
PS D:\> Write-Host 'tohost' > d:\111
tohost
PS D:\> Get-Content d:\111
PS D:\> Write-Output 'tooutput' > d:\111
PS D:\> Get-Content d:\111
tooutput
PS D:\>
Разницу замечаете ?

А теперь сравните результат с
Powershell -Noprofile -Command "Write-Host 'tohost'; Write-Output 'tooutput' " > D:\111
Powershell -Noprofile -Command "Get-Content d:\111"
hint: полностью вывод попадает в файл только в последнем примере