So before, tips.size was accessing a "size" column (Series) of the tips DataFrame. Now it picks up the "size" (length) of the tips DataFrame, which happens to be the value 1708.
I think pandas always runs the risk of issues like this as long as it supports the (very convenient!) feature of allowing member/"dot" access to columns (tips.size) rather than requiring getitem/square-bracket (tips['size']). If a new Series/DataFrame field/method is added with a name that was being used by old code as a column name, that old code will break.