Such is the nature of cross-platform development. Selecting the correct per-platform save directory isn't difficult at all though, especially compared to other porting tasks.
"%UserProfile%\Game Saves" (well, "%USERPROFILE%\Saved Games" actually) is the default for FOLDERID_SavedGames. But as that can be changed, relying on the default would be worse than not using the directory at all. The correct way is to use the SHGetKnownFolderPath() function.
Again, there are OS-provided APIs that should be used, namely NSApplicationSupportDirectory. I don't really know all that much about OS X though so I'm not sure if the Application Support directory location can be changed in practice.
Actually, the XDG Base Directory Specification is quite clear on what to do when the $XDG_* variables are not defined - and they aren't defined most of the time. Also, as soeb mentioned, $XDG_DATA_HOME is a better catch-all directory than $XDG_CONFIG_HOME, which should only be used for configuration files.
As Broken Age already uses SDL2, DF could simply use SDL_GetPrefPath() to get the save directory. While this function isn't perfect, it neatly abstracts all the OS-specific goo. Specifically, using "doublefine" as the org parameter would put the Broken Age saves next to those for most other DF games - at least on Linux.