You're right about training costs for college graduates. Another thing to consider which isn't directly mentioned in the post is training across a (programming) language difference. If someone is a C# developer and wants to join a company that uses Ruby or Scala, they might be willing to take a pay cut to get experience with new technologies.
That's an excellent point. Personally I've never considered that because I feel that experience 'programming' beats experience 'programming $language', at least for people who are above average.
Above average means giving a shit about being a developer, not just being in it for the employment.