Do you know when that change was put into place? I have been using Mathematica sense version 5 and my intuition was that `b[x] == 3`. Testing in mathematica 8 which I have on hand confirms this.
Write a = <||> before running the above code to test this on associations; associations are persistent, the symbol table is not.