Why does MSAA fail so badly for deferred rendering? Is there any way to ameliorate that or it's just not possible due to the way NSAA works? I'm honestly looking to be educated in this situation I have a better understanding.
MSAA works only on geometry edges, traditionally, you would shade the polygons then apply MSAA on edge polygons. It worked and all was fine.
Deferred Shading changed that, it decoupled shading and moved it into a later "deferred" stage. So you render the image with basic shading, then process the image, analytically and algorithmically applying the lighting on it, shading it in screen space. You do that in multiple "passes", it's like a photoshop program smartly shading the image in 2D space using analytical 3D information.
Now, because you've done your shading in multiple 2D passes, MSAA can't work because it lost the geometrical 3D information of the scene, it doesn't know where are the edges. If you try to add these 3D information back, your memory footprint will significantly increase, destorying your performance, you would need more VRAM and more memory bandwidth for no image quality benefit, MSAA will still not handle the rapid changes in lighting and high frequency details in the scene. Imagine needing 1GB for rendering a scene with Deferred Shading, 4XMSAA will essentially quadruple that to 4GB with no image quality improvement.
Also if you force MSAA on, multiple 3D information will need to be processed in the passes, which means doing more shading operations, which means cost is bigger.
Forward Rendering is the solution to get MSAA to work, but Forward needlessly shade pixels because it shades them in 3D space even if the pixels are not visible in the final image, with each light added to the scene, you need to shade each pixel again and again and again, making the cost of adding multiple lights prohibitively expensive. If you know your game has limited amounts of lights, go with Forward Shading, if not you go Deferred, as it will shade only the visible pixels in 2D space, which means adding multiple lights is now manageable.
Note that multiple shadow casting lights also breaks Deferred Shading, as shadows work in a "forward" manner, meaning rendering the entire scene from the perspective of the light source to determine which areas are in shadow, adding multiple lights this way means rendering the scene multiple times, we go back to the forward rendering problem, which is why modern games don't have many shadow casting lights.