Потому что необязательные, но бывают разные варианты и люди просто хотят выражать свои намерения явно вместо неявного использования значений по-умолчанию.
К примеру, могут быть такие варианты:
<link href="..." rel="alternate" title="..." type="application/atom+xml">
<link href="..." rel="import" type="text/html">
<script type="application/json">...</script>
<script type="application/ld+json">...</script>
Как видите, тут смысл совсем другой, так вот для однородности и последовательности некоторые разработчики указывают type всегда.