Having the "validating substring" in front of the @ will actually make it easier when you have to use the email address in vocal communication: many humans are unaccustomed to encountering more than one dot after the at.
I use a subdomain. *@abc.example.com goes to my CatchAll folder. [email protected] go to their respective users. There are no equivalent names between @abc.example.com and @example.com so if anyone gets cute[0] and tries stripping out subdomains, the messages are rejected. Also, subdomains are common enough that no one thinks anything of it.
As a nice bonus, the subdomain can also be directed elsewhere. I've aimed it at various "we automatically file your e-mail" type scripts and services before, just to try them out.
0 - Spammers absolutely try to get cute and drop the subdomain. For example, in the Dropbox leak, [email protected] and [email protected] of mine were leaked. I see tons of spam attempts to [email protected] and [email protected] daily.
Yours is a good solution.
I've done this before. You will get a shitload of spam. I recommend suffixing the user of all addresses with something you want to go to your inbox.
E.g. I use *[email protected] (r for "real"). Anything that doesn't end in [email protected] never hits my main inbox.