Double opt-in is no guarantee.
Double opt-in is no guarantee that your mail will never be reported as spam. In a perfect world, it should be, but the world is far from perfect, and people are still human.
Double opt-in is just the start - the bare minimum requirement. E-mail sent to confirmed recipients must also be relevant. It has to contain what you told them it would contain when they signed up, and nothing else. It has to deliver what your promise. If you say, 'sign up for my e-mail and learn the secrets to acquiring easy wealth through the Internet', and then start sending them pitches to join MLM schemes, well, you shouldn't be surprised if you lose subscribers.
When expectations in e-mail are not appropriately set and met, people will hit the Spam button in a sort of malformed unsubscribe request. Recipients' definition of spam will vary wildly, but it will never agree with the definition you as a sender think it should be.
For recipients, spam is the mail they did not want, even if they signed up for it. If you promise one thing, then send another, then that is mail they do not want, and it is easier for them to hit the spam button than it is to unsubscribe.
As senders, we have to make sure that our mail is so good, they won't want to unsubscribe. The best way to do that is to deliver relevant content to confirmed subscribers. Make sure you send what you promise -- nothing more, and nothing less -- and make sure you don't promise more than you can actually send.