To offer my point of view strictly as a user, without any development expertise:
I think the behavior I'd expect is the same as what Roland describes: a subfile embedded within (or placed alongside) a referencing file should be limited to the scope of the referencing file, at whatever recursive level that is. This to me is compatible with the problem statement:
All that being said, as a user I don't think I'd want to (inadvertently) create a situation where I had same-named subfiles existing at different levels of the tree, and I think I'd want the program to notify me if I did. At that point, maybe I'd want to be given the option to rename the local subfile, or to choose whether it should apply globally or locally.
The question of whether a non-official update to an official file should be given precedence is, I think, not really in dispute and in any case should be user configurable. It only becomes relevant because, if there is way to globally replace a subfile by changing the search path order, and a way to locally replace it by embedding it at a local level, then it seems to me that both use cases are accommodated and all is well. (You could even have both situations occurring at once, with a subfile globally replaced by an unofficial update, and with yet a third version appearing in specific parts—though again, as a user, I would tend not to want to work that way.)
I think the behavior I'd expect is the same as what Roland describes: a subfile embedded within (or placed alongside) a referencing file should be limited to the scope of the referencing file, at whatever recursive level that is. This to me is compatible with the problem statement:
Quote:Local files should always override library parts.…with the added understanding that a "local" (sub)file is indeed local to its containing file. Conversely, local files should not override library parts in contexts to which they're not local.
All that being said, as a user I don't think I'd want to (inadvertently) create a situation where I had same-named subfiles existing at different levels of the tree, and I think I'd want the program to notify me if I did. At that point, maybe I'd want to be given the option to rename the local subfile, or to choose whether it should apply globally or locally.
The question of whether a non-official update to an official file should be given precedence is, I think, not really in dispute and in any case should be user configurable. It only becomes relevant because, if there is way to globally replace a subfile by changing the search path order, and a way to locally replace it by embedding it at a local level, then it seems to me that both use cases are accommodated and all is well. (You could even have both situations occurring at once, with a subfile globally replaced by an unofficial update, and with yet a third version appearing in specific parts—though again, as a user, I would tend not to want to work that way.)