Hi, I have something to share on your case.
Annual leave is calculated based on basic salary only. If you have unpaid leave, it is deducted from your basic only. If you have remaining leaves, the calculation is the similar. This way, it is fair.
Whereas, your car park allowance is not a part of your fixed salary and considered a benefit for staff. When you leave earlier, you have to compensate the company for what they're paying you (including benefits).
Since KL Siew can't find whether it's lawful for them to do so or not, I hope my explanation helps.