Issue #27213: Fixed different issues with reworked CALL_FUNCTION* opcodes.

* BUILD_TUPLE_UNPACK and BUILD_MAP_UNPACK_WITH_CALL no longer generated with
  single tuple or dict.
* Restored more informative error messages for incorrect var-positional and
  var-keyword arguments.
* Removed code duplications in _PyEval_EvalCodeWithName().
* Removed redundant runtime checks and parameters in _PyStack_AsDict().
* Added a workaround and enabled previously disabled test in test_traceback.
* Removed dead code from the dis module.
diff --git a/Python/compile.c b/Python/compile.c
index 6bab86e..9502fee 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -3503,7 +3503,7 @@
                      asdl_seq *keywords)
 {
     Py_ssize_t i, nseen, nelts, nkwelts;
-    int musttupleunpack = 0, mustdictunpack = 0;
+    int mustdictunpack = 0;
 
     /* the number of tuples and dictionaries on the stack */
     Py_ssize_t nsubargs = 0, nsubkwargs = 0;
@@ -3532,7 +3532,6 @@
             }
             VISIT(c, expr, elt->v.Starred.value);
             nsubargs++;
-            musttupleunpack = 1;
         }
         else {
             VISIT(c, expr, elt);
@@ -3541,13 +3540,13 @@
     }
 
     /* Same dance again for keyword arguments */
-    if (musttupleunpack || mustdictunpack) {
+    if (nsubargs || mustdictunpack) {
         if (nseen) {
             /* Pack up any trailing positional arguments. */
             ADDOP_I(c, BUILD_TUPLE, nseen);
             nsubargs++;
         }
-        if (musttupleunpack || nsubargs > 1) {
+        if (nsubargs > 1) {
             /* If we ended up with more than one stararg, we need
                to concatenate them into a single sequence. */
             ADDOP_I(c, BUILD_TUPLE_UNPACK, nsubargs);
@@ -3579,7 +3578,7 @@
                 return 0;
             nsubkwargs++;
         }
-        if (mustdictunpack || nsubkwargs > 1) {
+        if (nsubkwargs > 1) {
             /* Pack it all up */
             ADDOP_I(c, BUILD_MAP_UNPACK_WITH_CALL, nsubkwargs);
         }