Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right?
So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?
No, the rely on POSIX[1][2]. Syscalls are an implementation detail handled by the compiler. Programs (like 'ls' and the rest of coreutils) that conform[3] to the POSIX standard should continue to work in future POSIX compatible operating systems.
If future operating systems deliberately introduce changes that break POSIX, then some work will be required to port the programs to the new environment.
However, this type of porting process is really implementing a new feature. The original finished version isn't affected and shouldn't need maintenance.
Here a search for "ls:", of the GNU CoreUtils mailing list:
https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=ls%3A...