Disadvantages of method 1-
1. As per the best practices it is recommended that every column name should be self explainatory or meaningful. Which gives more comfort to developers and understanding the design is simple.
2. You should aviod common names and system identifiers like ID, DATE, NAME etc as a column names to avoid the confusion acorss data model.
3. Its wrong that it requires less typing. You alias typing efforts are increased. You can have ID as a PK column name only for parent table and not for child tables (Because they have another ID column as their PK) so typing efforts are not reduced.
4. It is importand to keep consistancy of column names across table wherever possible for better understaning of design, readability and to avoid mistakes while writing queries and to increase the efficiency.
5. If you are joining two tables which are not having PK-FK relationships and if ID is the PK in both tables its mandatory to use alias's in joins, group by and order by etc. In case of second method you can just go ahead with column names because those are unique.
6. Method two is used almost in 100% business scenarios. Method one is used during study phase. (Which is also a bad practice). Even sample databases given by microsoft uses method 2. Articles published on reputed sites like http://www.agiledata.org uses method 2.
Guys can you add any other points to this?