Does it actually work? On my system ulimit is a shell builtin, not a separate command:
$ strace ulimit -s
strace: Can't stat 'ulimit': No such file or directoryNow, there's no solid reason why it couldn't work like `unshare` or `chroot` (which also wrap operations that modify the current process), and spawn a second child shell with the modified properties. But, that isn't how it works on any system I have ever used, isn't what users expect, and isn't in conformance with POSIX.
To quote POSIX: Since `ulimit` affects the current shell execution environment, it is always provided as a shell regular built-in.