As regards Safaricom, my experience is bundles expire after 90 days; with option of adding more before the date.
As regards Orange, passed by their Westlands shop today, maximum speed according to them is 512kbps; bundles expire after 30 days with same option of adding more before the date.
It boils down to speed v/s cost as @mwanahisa intimated. Nobody's being generous, everyone's in business.