I know it works because I just tested it and it survived the server's reboot. I ran "ulimit -a" and the new value was there.
...from a login shell. If you don't have a login shell /etc/profile isn't read on bash startup.
In my case, I am doing the change because of Samba. When you run tesparm, the lastest versions of Samba give the following warning:
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
When I add the line "ulimit -n 1024" to /etc/profile, the warning disappears, even after a reboot. So, this certainly works for processes running as root.
But you are right in that it will probably depend on the particular user requirement.