I can only say "Parentheses should be disambiguating it".
Well, parentheses can't always disambiguate, because you can have multiple invocants. For example:
(I'm not 100% sure on the syntax.) Multiple dispatch decides which method to call based on the types of all invocants. Usually you only have one, but you can have more than one if you want more than one object to be considered when the dispatcher is deciding which method to call. In those cases, you really need the indirect syntax.
Update: This is wrong. I got mixed up between declaration and call. You can declare a method to have more than one argument involved in the dispatch decision, but you can't (per Larry below) call it that way.