A pattern entry may be negated by prefixing it with an exclamation mark (`!'). If a negated entry is matched, then the Host
entry is ignored, regardless of whether any other patterns on the
line match. Negated matches are therefore useful to provide
exceptions for wildcard matches.

The documentation also said:

For each parameter, the first obtained value will be used. The
configuration files contain sections separated by ``Host''
specifications, and
that section is only applied for hosts that match one of the patterns
given in the specification. The matched host name is the one given on
the command line.

So, you can also disable ProxyCommand for local.dev by override value that you have defined in Host *: