With the exception of "Named parameters, a life sentence." every argument work for a Lisp based language as Racket for instance.
Introductions should be about learning how to reason about abstractions, and how to transform problem-solving from what's going on in your head into code. When you start out with something so rigid like C or Java you really confine a student's ability to reason about a problem because there's so much syntax to keep track of.