Something has to launch getty. I launched it from the terminal because I had to run MAME interactively to find out what PTY it created - if I had a hardware serial port with a fixed name, then yeah, I could tell make init run a getty on it at system startup without having to disassociate from an existing controlling terminal.
- agetty would inherit the controlling terminal of the shell it launched from, and it doesn't know how to dissociate itself, so it would still need a tool like setsid
- agetty launches login, which needs root permissions, so you'd still need sudo
- agetty/login reset the environment for the new session, so setting those environment variables would have to effect
- not a semantic problem, just a syntactic one, but agetty manages the TTY named on its command line, it doesn't pay attention to its stdin/out/err, so the redirections wouldn't help
Taking all those changes into account, you get the command line from the "no job control" section at the end of the article.