One reason I can see for making giving unreadable objects a readable representation is that it makes the job of code formatters easier.  If I have a transcript of a Scheme session that includes unreadable objects in its output, my formatter can still do something helpful with it.  Just a thought.