My list:
* I'd start with getting rid of foreach completely. (not just
foreach_reverse).
C++ was criticized for a long time for NOT having foreach in
the language. Now they have
http://www2.research.att.com/~bs/C++0xFAQ.html#for. Also people
were so desperate to gave it that even this
http://www.boost.org/doc/libs/1_49_0/doc/html/foreach.html was
considered a nice addition to boost (and still part of it).
Obviously somehow you want to go into the opposite direction.
Beats me.
If it simplifies code, makes it easier, and is more consistent,
having it is better than not having it. Like walter said in one
of the recent videos (going native 2012) regarding having an
assembler in a language: 'When you need it, you got to have it'.
True most features can be re-written as work arounds, but if you
don't have to then why insist on it?
Backtracking by removing key features which make the language
pleasant may throw us back into the C and C++ days. Yes you can
do full memory management yourself, and use pointers and pass
it's size to functions. We have fat pointers, so why insist on
backtracking? At the worst case if it isn't breaking the language
leave it alone. If you have good reasons for it, explain them in
detail. At best those of us who know better will laugh and move
on.