Yes, platformio does modify c_cpp_properties.json file (hence the warning - as a change to something like an include path would be lost in a re-write)… I was hoping that editing it through the VSCode preferences rather than manually might encourage it to use the configured setting… apparently not! 
${workspaceFolder} is indeed VSCode workspace specific… it really can’t be anything else as they haven’t figured out mind reading (yet!)
Unfortunately, with multi-root workspaces (i.e. a workspace with several projects in it), this, therefore, means multiple ${workspaceFolder} … so it would be better to have an absolute path rather than a relative path with the variable. This certainly is annoying… as you said… the need for the database is understandable… but really… 70MB+ for every AVR project… even a stupid ‘blinky’ one? That’s a bit much!
ESP8266 ones don’t seem as bad for some reason… seem to weight in at 15MB…