A rather clean solution I found:
add_filter( 'gettext', function( $translated_text, $text, $domain ) {
if ( 'woocommerce' === $domain && '%s in cart' === $text ) {
$translated_text = ' %s';
}
return $translated_text;
}, 10, 3 );
I had tested translation, but I was expecting "%d in cart" which was wrong and I thought that's out of question. With "%s in cart" it works. I removed the "in cart" text and added the icon using a ::before psuedo-element.