The only problem with singular nouns for table names is that they occasionally conflict with SQL keywords. The canonical example of this is from the TPC-H benchmark which has tables named REGION, NATION, SUPPLIER, CUSTOMER, PART, PARTSUPP, LINEITEM ... AND ORDERS <- plural because ORDER is a SQL keyword.
I like the singular guidance for all the reasons given. I like the consistency guidance. But the real world sometimes gets in the way.
One should just use the column name "id" then the table can be renamed if needed without having to rename the columns or perhaps the indexes. Although that's another debate altogether..
I work with ms sql server and use ssdt - with that we can rename columns and tables in the ide and ssdt generates a deployment script that renames the column and table and also all the references pointing to the column or table.