It's hard to have a light Monero client, because it has to have some data indexed about all past transactions, whereas a Bitcoin client only needs to maintain the MUCH smaller UTXO set, i.e. the unspent transaction outputs.
This is one of the ways in which Monero scales poorly.
Another problem is that Monero's PoW is expensive to verify where a good PoW should be instantly verifiable. In fact, it's considered so expensive that by default, the Monero client uses a checkpoint block without verifying all the PoW that led to the block.
There must be some subtlety I'm missing because you say it's hard to have a light client because there's no way to have a subset of transactions/checkpoint, but then say its PoW is so expensive that starting from a checkpoint is the default.
Keeping data from all tx indexed entails a large memory footprint during all client use. The checkpoint issue affects only the initial sync. Making that trustless by turning off the checkpointing makes turns a moderately slow sync into an extremely slow sync.
Other chains like bitcoin still verify that their checkpoint has the most cumulative work behind it, so you have additional assurance that the miners are also attesting to the checkpoint correctness. In Monero you have to trust the checkpoint to represent the most worked chain.
Monero's super expensive PoW also makes it very hard to interface with other smart blockchains that may want to verify the amount of work behind a Monero block, or to support useful techniques like flyclient [1].
Another problem is that Monero's PoW is expensive to verify where a good PoW should be instantly verifiable. In fact, it's considered so expensive that by default, the Monero client uses a checkpoint block without verifying all the PoW that led to the block.