И вообще for... in это частный случай, общий случай - in
if(key in object)
console.log(object[key]);
Квадратные скобки нужны когда идентификатор (key - ключ которым открывается квартира где деньги лежат) заранее неизвестен, или имеет не благообразный вид.
Нельзя напечатать object.key потому что key будет считаться скаляром - текстом object['key'], в то время как key - переменная в которой например 'Квартира №25' о которой еще ничего не известно.
Поэтому object[key] после вычисления значения ключа теоретически может выглядеть так object.Квартира №25. Но так не бывает снаружи, а что там внутри в дереве творится - нас не колебет.