That's true, but I've never actually seen anyone call 'has' like that. Plus, Perl's behavior on lists makes sense (always flatten) if there's no mucking around with prototypes, so that's much less confusing than the behavior in the article.
The second one isn't common at all, but I have seen people both completely leave out the parentheses:
has foo => is => 'ro', isa => 'Str', ...;
or treat has as a straight function has(foo, is => 'ro', isa => 'Str');
both of which cause Perl::Tidy to do weird things.