потому что admin присвоилось obj2. Как я понимаю оно увидело, что ты пытаешься изменить свойство и не стало идти по прототипу так как в этом нету смысла.
В то время как в случае с os ты к ней обращаешься, поэтому оно пробует его найти, так как в obj2 его нету, то оно идет уже в obj1 и изменяет его там.