Argument (Bundle) из-за передачи только примитивов (ну или сериализации), а viewModel только для MVVM?
если фрагменту требуются какие-то данные для работы, то нельзя иметь возможность создать его без них. По этой причине всякие shared ViewModel тоже не могут называться красивыми решениями