It’s not just about expansion. You need a certain amount of space for proper cooling. A small build is neat, but the trade-off is having your components be closer together and thus warmer, translating to lower peak performance and longevity.
No, not really. What you do need is a place to put your fans so that hot air gets pulled out of the system, and fresh, cool air is pulled in. When you go smaller, you do not need to shuffle as much air as you otherwise do, so the need for lots of fans disappears.
That said, most modern systems these days can get by on three fans, two 120mm in front and one 120mm in the back. Some compact cases like the J-Hack Pure XL allows for two 92mm intake fans - and that is usually all you need for a 3950X + 2070 Super build.
Of course if you are going to overclock and stuff then what I just said is pretty much a moot point, but most people are happy with their stock CPU configurations. If you plan on watercooling you want to go no smaller than 10 liter configs.