Why Aren't Gay Actors Cast In Gay Roles?

Ramin Setoodeh's theory:

The lovable lesbian wives in The Kids Are All Right were played by the heterosexual actresses Annette Bening and Julianne Moore. The quirky couple in I Love You Phillip Morris were portrayed by straight men Jim Carrey and Ewan McGregor. ... Movies need to attract the broadest possible audience, and filmmakers worry that if they cast a gay person as a romantic lead, audiences will be too grossed out. Instead, straight actors get the roles, and everybody talks about how brave they are. Stanley Tucci has played gay so many times (The Devil Wears Prada, Burlesque) it’s like he’s switched teams. 

David Link differs:

[A]nyone who saw the Emmy awards last year might have noticed that one category alone Outstanding Supporting Actor in a Comedy Series had nominations for gay actors playing straight, gay actors playing gay and a straight actor playing gay.  Yes, the straight actor won, but does anyone at all think this Hollywood has any problem with any qualified actor playing gay roles?