I love that first point and I wish it was something that was applied even further to other pieces of data - integers and floats are intended for mathematical operations and so to make database row identifiers integers always seemed strange to me.
That's a symptom of what's known as Primitive Obsession. Back in the days of programming languages before declaring new abstract data types with either prohibitively expensive (in time and/or memory) it was valid limitation. Today, there's rarely an excuse.