I'm sure that's some of it, but it's also a result of lists being pulled ahead of time. Imagine you have 100,000 subs and 10,000 of them are going to get promotion A and then another 15,000 (with some overlap) promotion B. Often, the lists are pulled before the content is ready. Sometimes getting the final approval on marketing emails takes a bit, and so the person who unsubbed when they got email A are already on the list for email B.
It is very expensive to work with out-of-date email list.
If emails address bounced or, especially, if potential recipient is known for clicking "spam" button, then sending email to such recipient significantly lowers bulk email sender score.
I use a rule of thumb that every "spam" click costs me (as a bulk email sender) about $10. If somebody already unsubscribed -- it is quite likely that the next time they receive similar email -- they will click "Spam" button (which would cost me $10).
As someone who works in email I've never used a platform that's not using real-time lists or segments. A business could certainly do it this way but it would be a lot more work and a lot less effective.