Technologically it's completely possible to impose different modulations (eg. QPSK, 16 QAM, 64 QAM) on different OFDM subcarriers. Such thing even happens in 4G/LTE communication technology which works using resource blocks/elements composed of dynamically grouping different subcarriers blocks and time blocks. Refer to this answer.
So why doesn't it happen in 802.11? The reason is that its added benefits are not worth more than a corresponding increase in transmitter/receiver complexity.
When there is too much data corruption (BER) in the wireless link, when the wireless link quality is low (which generally happens with increasing distance from the transmitter), the transmitter dynamically shifts to lower modulation schemes (e.g. from 64 QAM to 16 QAM). This increases the SNR and reduces the BER. In the case of 802.11, the entire ensemble of subcarriers is servicing to a particular user at any moment. Thus if the wireless link quality is bad it will be bad for every OFDM subcarrier and the modulation of every subcarrier needs to be lowered down. (So is not the case with 4G/LTE as, in this case, a downlink frame is aimed at a whole set of different receivers. They extract their data/parts from their respective resource elements. Implementing different modulation on different subcarriers helps 4G/LTE systems to ensure good wireless link quality for all users at the same time)
NOTE: In 802.11, there is a provision to support different modulations on different "spatially multiplexed streams". Every single stream needs an independent radio chain. This can be particularly beneficial in MU-MIMO (Multiuser MIMO) where an access point is catering to different users at the same time.