Is it ATC's responsibility to ensure read backs are correct?
A controller, should be on the lookout for all incorrect readbacks. But controllers are human, and can easily miss them, or say things in correctly. Incorrect squawk codes are often more of an annoyance versus an actual separation issue. It'd become an issue if they didn't take action when it was noticed that there was an incorrect code airborne, and let you truck on your way and not perform appropriate handoffs or inform others of any issues with your flightplan/target.

Most of the time, an incorrect beacon code will be flashing on the scope, if it's not assigned to someone else, and the controller will look through their list to find the correct code. If you tag up under someone else's code, then it becomes more of an issue, as they have to realize it's incorrect, suspend the datablock, and flightplan(or most likely drop it out of the system and reenter it) (flightplan issue is often delegated to others in the operation), and hunt for your correct code.