I really wonder what "more sane" languages you mean. Because a single [] does give you an empty list value in Python: one list, and not four different empty lists. Why would it give your four? That'd need to somehow bring in the surrounding context and in "sane" languages, (closed) expressions generally don't change the meaning because the context around them is changing.
Actually, if you really want to have re-evaluting (sub)expressions, then Python does give you an option: comprehensions.
Actually, if you really want to have re-evaluting (sub)expressions, then Python does give you an option: comprehensions.