Да, разница только формальная, семантическая. Технически никакой разницы нет, вы можете запихнуть все зависимости в dev, и нормально будете собирать ваш проект. Равно как и наоборот. Это сделано для того, чтобы не захламлять package.json, чтобы можно было сразу увидеть, какие конкретно зависимости нужны для самого приложения (dependencies, сюда, например, пойдет react и все его зависимости), а какие - только для сборки и разработки (например, gulp пойдет в dev).