Simon sorry but you aren't right;
on BI 1.6 lanciarii doesn't have bonus against cav - they are just light infantry.
And bucelarii (protected by heavy infantry) are best option against heavy armoured cav. They have armour piercing bonus - in mine clan we tried bucelarii (val 1) vs equites clibinarii (def 32). After one shot of one unit 4 clibinarii died. These clibinarii can stay under 4 archers fire for 2 minutes loosing 4 men.