А
При плохой архитектуре мы будем сталкиваться с неопределенным поведением и начнем путаться в том, какие данные должны передавать. (Для этого используются разные подходы, от json-схем, до классов)
Но если мы не накручиваем 100500 модулей где попало и не реализуем полиморфизм чайника от чая, то динамическая типизация позволит использовать более гибкие подходы.
Минусы тоже есть, как самое очевидное — не без хорошей документации ты будешь постоянно бегать по проекту, чтоб понять какие данные тут используются. (Опять же, если говорить о плохом подходе)