This needs to be documented quite prominently as a new feature because it changes behaviour quite visibly. Someone might be surprised that something now executes code when it was previously a NOP.
I think the behavior after this change actually is closer to what the current documentation claims.
Arguments to commands must be separated by whitespace (spaces or tabs)
This defines how pdb should treat commands and arguments, which is not what we are doing now. According to the current docs, if the user inputs c['a'], it should be treated as a "command" because there's no whitespace anywhere. However, the current behavior treats it as command c + argument ['a'], which is against the docs.
I don't think anyone would be surprised if they input c['a'] and pdb evaluates the expression. If anything, this change eliminates a lot of surprises. The user would be pretty surprised if they do c['a'] and pdb complaints that it does not recognize the argument ['a'].
We also claimed in the docs that
Commands that the debugger doesn’t recognize are assumed to be Python statements and are executed in the context of the program being debugged
which is exactly what this change tries to do - c['a'] is not a command the debugger recognizes and should be considered as a Python expression.
Why would the user expect different behavior when they do d['a'] (currently evaluates the expression) and c['a'] (currently reports an error)? That's not intuitive.
I honestly can not think of a single case where the user would feel surprised with this change, even if they are very used to the old pdb.