Giving an option seems good! And yeah, I can imagine that slicing up the shadow with so many objects on screen would be a nightmare. There might be ways to optimize it (for example, pre-calculate every shadow frame at startup, store them in RAM along with the sprites and just blit them as needed without calculating them every time), but you probably have more important things to focus on.
Third alternative: bad weather. Add some dramatic rain and dimmed colours, and there, a perfect excuse to not have any shadows ;D
Further on the subject of shadows: your shadows stack, which looks weird. By that, I mean if something casts a shadow while standing in a shadow, the part where the shadows overlap is darker. Shadows don't stack unless they're shadows from different light sources, which is why it looks weird.
This should be fairly easy to fix: when calculating and drawing your shadows, render them as a solid colour onto a separate layer instead of rendering them right onto the game screen. That way, when they overlap, it won't make them darker. Then, once you've drawn them all on that layer, draw that whole shadow layer at the appropriate opacity and blending mode. Depending on how rendering is done in your game, it might even help boost performance since the shadows only get blitted onto the screen once, all the other drawing happens off-screen, as pure math.