I recently read an HN thread about Romanian ccTLD registry selling domains for lifetime. They have stopped it and asked the former customers to pay up though.
And also ccTLDs can make up whatever rules they want, whereas gTLDs are all bound by the same common set of rules. There are many ccTLDs that don't even use EPP (the spec I linked to above).
As for longer registration periods than that, I suspect it's the same reason you can't, e.g., call up your cable company and try to pre-pay 50 years of service. They have no idea what things will be like that far down the road, and they don't want to have such longstanding obligations weighing on them.
It comes down to business decisions, not technical issues; technically speaking the spec allows for up to a 99 year registration period, though I'm not aware of any TLDs that support that. https://tools.ietf.org/html/rfc5731#section-2.5