あえて複数形のない日本語で考えるとわかりやすいかもな
add_うどん()
add_うどん(うどん)
うどんが何うどんだとかどこ産のうどんだとかは、add_うどんメソッドには依存しない
とにかく、うどんを渡せばよくて
そのうどんが、うどんクラスのインスタンスだったりするかもしれないってだけ
だが、リストで渡せてしてしまうと
add_うどん([うどん、うどん、うどん、、])
[]←これなに? → うどん(など)の配膳カートです
これはうどんじゃなくてカートを渡したってことになる

「カートには入れたが、複数杯(や玉)のうどんを渡したって意味な」
というのが自分も含め通じてしまうのは
Listはそうときに使う(使いたい)からっていう共通認識だけでしかない

"add_うどん_を_配膳カート_で_()"
とかだったら配膳カートをクラス化して渡せばいいし
(リストの機能で十分なら)クラス化せずともリストで渡してもいいのはわかる
でも大抵、リストを渡す時はそこらへん省略されてるかアノテーションで判断してる気がする
なぜならadd_うどん内部での配膳カートはイテラブル程度の機能しか使わないことが多いから

リストを渡す、は本当はそれ自体に意図があり
可変長引数はその意図を論理的に省略することができる