it's my understanding that Apache creates a www-data user
Não. A maioria dos sistemas de gerenciamento de pacotes criará um usuário ao implantar o software.
you can't directly log in as [that user]
Sim - como você diz, isso é comumente feito por motivos de segurança.
you have to ... su -s /bin/bash www-data
Se o sistema estiver configurado de forma a permitir isso - às vezes até isso é desativado.
What do you do, when you want to upload files via FTP?
Você trabalha com um modelo de permissões que permite que os usuários relevantes implementem e modifiquem arquivos e o servidor da Web para ler esses arquivos. Em casos muito raros e controlados, você configura locais fora da raiz do documento para os quais o servidor da web pode gravar.
Em todos os servidores da web configurados, o uid do servidor da Web é a conta com menos privilégios, por isso, concedai acesso de leitura por meio do "outro" espaço de permissão, por exemplo,
colin@animal /var/www/html $ ls -l
total 28
-rw-rw-r-- 1 colin webdev 11321 Dec 27 2016 index.html
drwxrwsr-x 2 colin webdev 4096 Jan 10 2017 session
-rw-rw-r-- 1 colin webdev 148 Feb 18 2018 login.php
drwxrwsr-- 1 colin grafx 4096 Jan 9 2017 images
-rw-rw-r-- 1 colin grafx 8334 Jul 4 21:59 logo.png
As permissões são os meios pelos quais você compartilha acesso, não nega acesso.
allow a non-root user to su as www-data
Eu não sei. Nunca deveria ser necessário.