>C shouldn't automatically supply pointers to objects. C++ should
That would make the two languages more inconsistent and more confusing to use.
>If you pass an object to a function then it shouldn't be the value of the parameter by default. It should be a reference to the object
...and what syntax would be necessary should one want the value? The indirection *? Reference parameters in functions are confusing enough, let's not add more "features" to an already excessive set.