Well, most students these days still would not have been exposed to lambda calculus in high school: I'd wager that most students who played with Lisp/Scheme in high school wrote imperative code (taking advantage of mutable cons cells and loop/do macros). Indeed, the very website we're conversing on is written in imperative-style Lisp.

So no, I don't think that students with prior programming experience are significantly better prepared for tail recursion, Y-combinators, and purely functional data structures upon entering a CS program.

My theory is that it no longer levels the playing as other effects have crept up: the "technically entitled" student today mostly visible has an edge over a highly talented but (not _yet_) experienced student stemming from a strong knowledge of UNIX (thanks to Linux and OS X) and other development tools. In the 1980s/early 90s, learning a new environment (UNIX, VMS, TOPS-20, ITS) and new tools (vi, emacs, make) would have leveled the field for all students.

While an anecdote doesn't prove this theory, a friend told me how she took $AnotherPrestigiousUniversity's[1] equivalent of 6.001. She had no prior programming experience (at all) and got an A (not easy, as the average GPA in that university's CS department was significantly below 3.0). Nonetheless she did not consider switching to a CS major. The environment played a role: she specifically called out the attitude students with prior UNIX experience had towards those without it. She also felt that much of the knowledge gained in that class wasn't applicable to real-world software development or to her natural sciences major.

Personally if I don't think switching to ML or even Haskell would mean students dropping out of CS: CMU uses SML for CS majors, my alma mater (a good, but not a top-15 CS/Engineering school) used Haskell once and now uses SML, as do many other schools. However, I don't think teaching typed lambda calculus would ameliorate technical entitlement any more than teaching untyped lambda calculus does.

A greater equalizer would be to require students to use more of their EE, Math, and hard sciences knowledge in their programming courses: I've noted that EECS/CSE majors tend to be more diverse than the CS majors due to "a fancy .vimrc won't help you pass diff-eqs" effect. However, it may have the adverse effects of also repelling less mathematically inclined CS majors (whether technically entitled or not).

I started out as an incredibly technically entitled student. I was able to use that to convince a university to admit me despite modest high school grades (by attending a community college college for a year and writing a personal statement about a programming internship I had in HS as part of the transfer application). What humbled me were upper division CS courses and realizing that I could learn a tremendous deal from people who (oh, the horror!) used pine instead of mutt. It turns out knowing UNIX minutia was not in itself terribly relevant for long term career success...

I still think I benefited greatly from pre-university hacking, but when I took a graduate machine learning course, I couldn't help but think "what if I spent the time to grok integration by parts in my HS calculus class instead of day dreaming about how I'll reconfigure my X11 window manager?" Perhaps that's why there's far less technical arrogance in the industry vs. academia: may be the students who retain that arrogance convince themselves that there's nothing they can learn from others and graduate with less qualifications that their peers?

[1] Obscuring details as not to discourage any students from applying to this university. Today's situation may be radically different from ~2002-2004 timeframe.