If you look at most of the grocery store rotisserie chickens, they're roughly 2 pounds - 3 pounds at Costco, which is one of their selling points. At $5, you're paying $1.67-2.50/pound for the bird, a few cents worth of seasoning and oil, a plastic shell, labor and depreciation on the rotisserie equipment. The store is probably not paying even $1/pound for those small birds.
As for them being ones that the store was selling that were past their date, go look at whole chickens in the store some time. If you find any 2 pound birds I'd be very surprised - you're more likely going to see a minimum of 3.5 pounds, at least in the US. The store also wouldn't be cooking random-weight birds because it's going to be much harder to control for even cooking - you can't just throw a 4 pound bird that's approaching its sell by date into the oven with your 2 pound birds, it'll be raw inside when you pull the rest of the birds out.
They are high margin, but low volume. A fifty cent chicken, with a few cents worth of spices (mostly salt) and like three minutes of labor will sell for $5. Not including the additional revenue from sides and rolls.