This seems unexpected, should investigate more, but a string property is reflected as undefined on initialization (e.g. for attribute 'foo', this.foo is undefined). After setting the property, and subsequently removing (removeAttribute('foo')), the reflected value is now stringified null, e.g. this.foo === 'null'.
This is unexpected reflection for representing the same state: an element that does not have the attribute in question.