Using .ascii is fine; the string is going to a syscall–not libc. And using the standard library in a program like this is kind of beside the point…
I know how dynamic linkers work and am not arguing against using the libc interface in general. I'm saying that this program intentionally doesn't use those interfaces.
BTW even in our small threos.io os we use dynamic linked system calls.