You have the option of doing both (using the camera image to restore the shadows). Keep in mind that if you want to get a good result taking a photo, you need to get really even lighting, keep the media very flat, and the camera very close to perpendicular to it. Same stuff that the scanner takes care of for you basically.
But before you resort to more difficult options, consider whether you can selectively apply a filter to recover the detail (assuming that what has happened is that the local brightness relationship changed, rather than actual destruction of data). If it were me, I would make a duplicate of the image, greyscale it, normalize it, and invert it, so I have a selection mask that affects pixels in proportion to their darkness. Then I would probably try some spatially-sensitive filters, like GMIC Local Contrast, Bilateral Blur, or Unsharp mask, according to the exact symptoms of the problem.
That's what I'd do if it was the same kind of shadow distortion I've encountered (which I think probably amounts to 'pigment on receded parts of the canvas scans as a different color than my eye sees it as'.)
There's not really a one-size-fits-all solution IME. Getting samples of different media, making some shading samples, and seeing how truthfully they scan is an informative exercise for the future -- some media is great to work with but scans weirdly, or vice versa.