This has been a concern of mine w.r.t. oop as implemented in C# (and by extension java), as the structure can be very costly to change down the line when the inevitable 'pivot' in implementation occurs.
If you never feel guilty/bad about any code you've ever left behind - never - there's something wrong with you. You shouldn't go through life apologizing for every line of code either, but there's a balance to be struck somewhere that probably shifts over time.
You want to show that you are now knowledgable of better methods and you would like the criticizer to recognize that your mistakes are not ones that you are still making. Furthermore, you can't really blame the criticizer, they're just trying to help you become a better programmer.
It seems all you can really do is give the sheepish grin and say "yeah, well, that was written at a very foolish time in my life..."
Feeling guilty shows that you've grown and that you know more today than you did when you built the system you're feeling guilty about. I'll take the guilty feeling as a side effect of growth when the alternative is stasis and stagnation.