Xilinx has a pretty clear disincentive to optimizing Vivado for minimum area. If it does a bad job optimizing, the user is forced to switch to a larger FPGA -> more $ for Xilinx.
I'm not saying there is any intentional area bloating going on, just that there is little incentive to make Vivado better at optimizing.
Read https://www.bunniestudios.com/blog/?p=5018 to see where I'm coming from.
EDIT: It makes a lot of sense in my head, but perhaps I'm overlooking something important. I'd be interested to read in more detail why it doesn't make sense to you.