I follow all of the email standards on my primary servers, SPF records, no relay, and all standard nonsense with one exception. Where I draw the line is I don't BOUNCE, I use REJECT instead, screw the rules and I'll tell you why. If you simply REJECT email that can't be delivered, some of the games spammers play just get deflected off your server, no harm, no foul.
I refuse to be a victim of the spammers games and REJECT it on principle alone ;)
However, if you BOUNCE, that means you have to actually accept the mail, it has to be delivered into your server before it can be BOUNCEd! Now it's YOUR problem, it's clogging up your mail queue, using your bandwidth and busying up your mail server trying to return mail to places that don't exist for days or worse yet, bouncing email to a forged return address.
Next thing you know your outbound mail server has thousands and thousands of these stupid emails bouncing and you can't send or receive anything in a timely manner, it could take minutes or even hours depending on how bad your server got abused. Even better is when the spammers use real return addresses and use your BOUNCE to send junk to people that otherwise are immune to spam. Next thing you know you're getting yelled at by people getting BOUNCE spam just because you had your server set up properly.
Been there, done that, BOUNCE is officially not allowed on my servers, only REJECT.
Mail server queue is virtually empty at all times by making this one simple change to combat spammers games and my delivery time is almost instantaneous and has been for many years. Basically, if you have problems connecting to my server it's not on my end and I have log files to prove it.
That's the other upside, without all the crap bouncing around in the server the log files are so small they're actually useful for debugging real issues that sometimes arise.
Let the email purists complain, I don't care, it's not their server.