Ну, при инсталляции очередного драйвера он запоминает предыдущую директорию и потом перенаправляет при необходимости вызов на нее. Образуется такая цепочка обработчиков.

Есть проблема касательно того, что какие-то клиенты могут использовать приведение Locator(HostFiles.Locator). Но, во-первых, разработчики должны были понимать,что используют низкоуровневые средства. Во-вторых, открытие типа реализации, как это сделано в HostFiles - редкий и не очень правильный случай, и в других местах Framework'а я его не видел. Во-третьих, я бы просто наследовал свой локатор от HostFiles.Locator, поскольку локатор никакой системной функциональности в себе не несет, это просто дескриптор, обертка для строки пути. loc.This() на несуществующую директории вполне допустим. Проверка и обработка пути все равно выполняется в процедурах директории, при передаче такого локатора.