This is bad user agent behavior.
This bug staying around will confuse new users of Firefox and annoy power users alike. The spec reads “at least”, which should mean “unlimited” except in cases where a browser developer feels that keeping a limited amount of cookies is a Good Thing™. I can’t see where it’s ever a good thing, really, to drop old cookies. Some just don’t get used very often. That’s life. Cookies are being used like keys all over the Web, and Gecko is letting you only have the 300 most recent keys that you’ve used. If #301 was really important, well, it sucks to be you.