In 55481 the recursion was fixed but backquotes and comma(-at)s were left as-is, so as to print comma(-at)s specially only if they are escaping a backquote. This is not particularly useful (and I would argue is bad), so something like the attached patch could be a good starting point to make it so that they are always printed specially (given `print-quoted' is non-nil and it is a proper list of length two - the usual checks for other quoted forms), which also solves(maybe? - it was not the primary goal) the recursion. Feel free to change or drop whatever.