I would argue that your original query did not return duplicate rows. It returned 3 separate rows of data from the database in which you only included the last name column. I would say that your question is not phrased correctly and hence why RDBMS function in the manner they do (which I also argue is the correct manner).
To translate your query:
select LAST_NAME from USERS
into English, it would be:
"tell me the last name of all the users"
If I went into a highschool gym class and asked the teacher "using your class list sheet, tell me the last name of all the students in your class", if there were twin brothers in the class, I would think he would list their last name twice (or he'd at least ask the question to you if he should). He would just go down the list of people in the class and read off their last names.
If you were wanting to ask the question, "what are the different last names of students in the class", he would not list the names duplicated. However that's what the "DISTINCT" key word exists.
So the query would be:
select distinct LAST_NAME from USERS
And if you were actually interested in the number of unique last names in English is "How many different last names are there of the students in the class" or using your example:
select count(distinct LAST_NAME) from USERS
whereas:
select count(LAST_NAME) from USERS
would mean in English:
"How many people in the class have a last name?"