Currently buffer specifications take precedence over window
specifications. Ben proposes to change the order of precedence
of these two when instantiating the specifiers, and I agree
with him here.
The main point is that buffer domain is less specific than
window domain. Window specifications are rarely used; in case
they are set this means that somebody wants something to
be that way in this window, so logically it makes a lot of sence
that this specification overrides buffer specification.
Crying examples are modeline shadow thickness specifier, and the
new one introduced by Didier in his last patch. Both accept negative
values to give sunken look to the corresponding objects, and both are
set in the window locale. This has unwanted consequences in case
when the specifier is set (has matching specification) in buffer
domain: the approach simply does not work. There is no way to
make it correct given the current course of things.
Ben's point is that the change must be made to 21.0, and that
the effect of this change would be minimal, becuase there are very
few cases if any at all when a specifier is set in both window and
buffer domains.
Kirill