Dynamic Macro Variable
The better approach would be to pass the icon as a parameter to your macro. So I would do something like

{% macro renderIcon(type) %}
    {% switch type %}
        {% case 'video' %}
            {% include 'video.twig' %}
        {% case 'audio' %}
            {% include 'audio.twig' %}
        {% default %}
            {% include '_generic.twig.twig' %}
    {% endswitch %}
{% endmacro %}


And in your template you can do 

{% import 'macro.twig' as icon %}
{{ icon.renderIcon(product.getType().handle) }}