Сам вопрос: как это работает и что нужно анимировать?
Автор задал очень хороший вопрос и привел пример реализации анимации path с помощью изменения аттрибута d="M.."
Главное требование:
для успешной реализации этой техники анимации - должно быть одинаковое количество узлов в начальном и конечном положении.
Другими словами, если вы превращаете пятиугольник в квадрат, у вас должно быть по пять узлов в патче и для пятиугольника и для квадрата.
Это можно реализовать с помощью любого векторного редактора, в котором есть инструменты для рисования патчей.
Возьмем например Inkscape для получения согласованных патчей пятиугольника и прямоугольника
- Задаем размер документа 400х400 px
- Устанавливаем горизонтальные и вертикальные направляющие, проходящие через центр документа и узловые точки. На рис. ниже - это голубые линии. На них будем ориентироваться при перетаскивании узлов.
- В палитре инструментов выбираем многоугольники

- Рисуем пятиугольник
Выбираем в меню: Контур / Оконтурить объект (Shift+Ctrl+C)
Сохраняем файлы в формате *.svg, но редактор не закрываем
Из всего кода файла нам нужна только одна строчка c атрибутом d="m.."
<path d="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z" />
Возвращаемся в Inkscape, выбираем инструмент - редактировать узлы контура 
и перетаскиваем узлы, чтобы получился квадрат 
- Снова сохраняем файл и копируем новые значения атрибута
d="m.."
Полученные значения нам нужны для подстановки в переменную values=".."
values="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z;
m200 724.1 122 88.6-46.6 143.4-150.8 0-46.6-143.4z"
Точка с запятой разделяет значения путей для квадрата и пятиугольника. При анимации путь будет изменяться от одного значения к другому.
Ниже код реализующий анимацию плавной трансформации одной фигуры в другую:
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 400 400" id="svg2" version="1.1">
<g id="layer1" transform="translate(0,-652.36216)" style="fill:yellowgreen;stroke-width:3;stroke:dodgerblue">
<path d="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z" >
<animate attributeName="d" dur="6s" fill="freeze" repeatCount="3"
values="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z;
m200 724.1 122 88.6-46.6 143.4-150.8 0-46.6-143.4z;
m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z" />
</path>
</g>
</svg>
Анимация атрибута "d" патча очень мощный и эффективный инстумент, позволяющий реализовать разнообразные трансформации.
Вот более сложный пример анимации движения и развевания волос на ветру.
UPD
Трансформация одной формы в другую (без возврата в исходное положение)
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 400 400" id="svg2" version="1.1">
<g id="layer1" transform="translate(0,-652.36216)" style="fill:yellowgreen;stroke-width:3;stroke:dodgerblue">
<path d="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z" >
<animate attributeName="d" dur="6s" fill="freeze" repeatCount="1"
values="m200 724.1 124-0.2 0.9 231.3-246.8-1 0.9-230.3z;
m200 724.1 122 88.6-46.6 143.4-150.8 0-46.6-143.4z"/>
</path>
</g>
</svg></code></pre>