Even if the inititialize/finalize code of sysutils is removed, sysutils uses units sysconst and heapmgr. Sysconst adds some error strings as resource strings (or so it seems from objdump) and heapmgr registers a record with pointers to the heap management code, so basically all the heapmgr code is referenced and cannot be eliminated by smart linking.
More detail can be observed by analyzing the output of objdump:
arm-none-eabi-objdump -d project1.elf
Analyzing this output reveals a bunch of code associated with the TEncoding class, not sure where this gets pulled in, probably automatically loaded by the compiler if the sysutils unit is loaded.
The rtl was compiled with OPT='-CX -XX' and the empty test project was compiled with smart linking enabled.