IMO that's unacceptable too. State that you've been unsubscribed on the confirmation page and never email again. You literally just told them never to email you again and they immediately emailed you. Also the ones that say "you'll be removed from our mailing list in 2-3 weeks" should be fined. It doesn't take 3 weeks to process an unsubscribe. Sure, it can take a day or two to propagate through all the databases if they use a convoluted database schema, and sync jobs, but WTF is up with 3 weeks? They're just like "we're going to go ahead and keep sending you shit for a few weeks. MK?". Fuck you!
Definitely no to all that crap with weeks delay, unsubscribing should take seconds or at maximum until next DB sync, and that can't be more than a few minutes.
It could be a day or so. Some companies have lots of different DB that sync back and forth and may only run merge jobs once a day. But three weeks? Get the fuck out of here!