Those are two different things. The point of $services.localization.render is to serialize the blocks representing the translation (which might contain other stuff than plain text in theory) into the passed syntax. As such, it's escaping only what is supposed to be escaped, exactly like when the content of the WYSIWYG is serialized.
$services.rendering.escape's goal is different: the point is to make sure that nothing is interpreted in a String passed to it, no matter what. And the fastest and safest way to do that is to not try to be clever and escape every character, even if most of them to need to be.
This message was sent by Atlassian Jira (v9.3.0#930000-sha1:287aeb6)
If image attachments aren't displayed, see this article.