Cache entry but escape dynamic data
You would simply not wrap it in cache tags. I don't think there's anything like that EE function to specifically exclude parts within the tag. Might be worth a feature request though?

{% set item = craft.shortlist.item(entry.id) %}

{% cache globally using key "product-card-" ~ entry.id ~ "-1" until entry.dateUpdated %}

    {{ entry.title }}

    ...

{% endcache %}

// EXCLUDE THIS PART FROM CACHE
{% if item.inList %}
    &lt;a class="love animating fav" href="{{ item.removeActionUrl }}" data-id="{{ entry.id }}"&gt;&lt;i class="icon icon-heart"&gt;&lt;/i&gt;&lt;/a&gt;
{% else %}
    &lt;a class="love animating" href="{{ item.addActionUrl }}" data-id="{{ entry.id }}"&gt;&lt;i class="icon icon-heart"&gt;&lt;/i&gt;&lt;/a&gt;
{% endif %}

{% cache globally using key "product-card-" ~ entry.id ~ "-2" until entry.dateUpdated %}

    ...

{% endcache %}