@SkyKhan
It is cross-platform, however won't cover all the possible scenarios. In fact I don't think a bulletproof, cross-platform function is even possible. This is why Lazarus doesn't implement it in the first place. For example one of my Linux distro(Kali) doesn't even have a document folder.
@JD
What exactly are you trying to achieve? Store a config file? For that you have: GetAppConfigDir, GetAppConfigFile(with some issues on osx). GetUserDir is also cross platform. Perhaps if you describe the problem, we can come up with a better solution(or not)
.