It's mildly annoying that you can invoke a mixin without a parameter list (@apply --m), but defining a parameter-less mixin requires an explicitly empty list (@mixin --m()).
It seem more civilized to either make the parameter list optional on the defining side as well, or require () when applying a mixin with no parameters.
If mixins are indeed going to gain a stronger underlying connection to custom functions (#12927), then I'd slightly prefer to just always require (), but I'm happy enough as long as we achieve some "symmetry" between @apply and @mixin.