I have something similar to this:
// Declarations: List list1 = new List(); List list2 = new List
Yes, you're not cloning the object. The object is being added to both lists originally by reference, and then subsequently you're assigned a reference in the list to the new object you're creating.
That is definitely the expected result.