Your first example is pure python, and is just creating a new name for the the object oldDataset.
The second example is performing a spatial analyst function and binding the result of that function to newDataset.
So yes, the behavior is expected. This is how python works, and has nothing to do with arcpy, or sa.
There are no variables in the python language, just names and objects. The assignment syntax binds an object to a name, it doesn't copy the underlying object.