да спеки, имхо, в обязательном порядке нужно для внешних апи делать, когда не понятно, что прилететь может.
История из жизни про диалайзер: Как-то вылезла ошибка вообще невнятная ":0:unknown_type" все. При том CD/CI был настроен так, что с ошибками в мастер не смержиться. Искал, искал, пару дней убил, коллеги тоже искали искали, никто не смог найти в чем косяк. Решили добавить ошибку в .dialyzer.ignore и смержиться в мастер. И что вы думаете? Через полтоора месяца от фронтов приходит бага: на такой-то запрос сервер пятисотит (500 err). Начал разбираться, нашел в конце концов косяк, поправил и вуаля! Ошибка диалайзера ушла. При том бага была в неудачной стечении обстоятельств и внешней либе, которая такое пропускала, хотя 100% не должна была. В следующей мажорной версии либу (Absinthe) переписали и такой код вообще перестал копмилироваться.
В эликсире, а точнее фениксе/экто/абсенте/etc, которые все на макросах, вообще без диалайзера тяжело стает через 10к строк кода. Да и спеки помогают делать код амодокументируемым без комментов в 3 раза больше тела функции.