The big downside to doing this with VSX is it isn't really virtual in any meaningful sense. All VSs share the same version, the same OS, the same hard drive or SSD, and so on. If the box has a problem, all of the contexts on it also have a problem. It greatly increases the impact domain of failures or maintenance. I have seen some environments still running R67 (end of support before 2014) because they can't get everybody using the firewall to agree to a change window long enough to upgrade.
Edited to add: VSX on a larger box is definitely vastly less expensive than a bunch of separate smaller boxes, though. As long as you're okay with the larger potential impact, it can save ridiculously huge amounts of money. I've got a VSX pair right now running ~$300k worth of licenses on $45k worth of open servers. Replacing those boxes with non-VSX appliances would cost a minimum of $4M, just due to all the different routing tables.