I would expect/want no conversion in either case. Maybe instead of printing based purely off type we can see what how the data was represented and delegate based off that. 

-------- Original message --------
From: Eli Zaretskii <eliz@gnu.org>
Date: 5/11/24 12:47 PM (GMT-05:00)
To: Michael Heerdegen <michael_heerdegen@web.de>
Cc: 70868@debbugs.gnu.org, iarchivedmywholelife@gmail.com
Subject: Re: bug#70868: 30.0.50;

> Cc: iarchivedmywholelife@gmail.com
> Date: Sat, 11 May 2024 18:38:48 +0200
> From:  Michael Heerdegen via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> > Anyway, adding a user option will probably be the best solution we can
> > implement.
>
> We already have `print-integers-as-characters', though.  So if we want to
> make this completely controllable on the per usage basis, removing those
> lines would indeed make more sense.  Then the user could just bind
> `print-integers-as-characters' as for any other printing action.

The issue here is user expectations from what Emacs does by default.
To see what I mean, remove those lines, and then try

  M-: (pp-emacs-lisp-code '(eq foo ?a)) RET

Evidently, there are two sides to this coin.