To the two explanations of why go is hard for computers, 1) many legal moves and 2) no eval. function, I think you should add 3) long game.  If a program is computing a variation tree it's not only the breadth that makes it difficult, but the length.  Things like playing for good shape in the opening can't be evaluated by going through variations, since their benefit will come 200 moves later in a fight or in having priveledge to a good endgame move.