¿Por qué incrementar lo mismo se comporta de manera diferente cuando lo referencia a través de una variable?
function f() { return {}; } let x = {}; x++; // OK (f())++ // ReferenceErrorLa diferencia se debe a que cuando js está evaluando la expresión, comienza comprobando si el lado izquierdo se puede convertir en un número y, por peculiaridad, un objeto se convierte en Nan, mientras que una función no lo es y js lanza una excepción al intentar convertir antes de ser evaluado. Ver también aquí: https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-postfix-increment-operator
Todo este código no tiene ningún sentido. No se puede incrementar un objeto.