Нашёл в ББ злобный баг. Точнее известен он давно, я на него только по-подробнее взглянул. Итак, Files.Locator.This:
по документации в случае ошибкидолжен возвращать NIL, а код ошибки кладётся в поле resродительского локатора. Реализация же в HostFiles всегдавозвращает новый локатор, просто в случае ошибки кладёт её код в поле resвозвращаемого локатора! При этом модули среды полагаются на документированное поведение, честно проверяя результат каждого вызова This на NIL. Я вообще удивлён, почему до сих пор ошибки не посыпались. Я ещё не проверял, везде ли разработчики следовали спецификации или уже начали "учитывать" этот баг.

На самом деле баг логический - в Files указано, что Locator.This в случае ошибки должен возвращать NIL, а Directory.This - возвращать локатор с кодом ошибки в res.

Не стал публиковать в открытом разделе дабы не смущать народ. А самому как-то грустно стало - как это вообще могло произойти? И сколько ещё сюрпризов заложено в системе?