dnerra: Of course, the crucial question in go programming is not the data structure, but the algorithms. In my opinion, any useful algorithm can be implemented based on a traditional 2d arrray board representation, the popular 1d array, or a graph representation. So what matters is where your algorithms can be implemented more easily, and in which case you get better performance. I tend to think that the 1d array is pretty strong in all these points, but I wouldn't mind being proven wrong.
P.S.: Oops I thought this would become a subpage of BenjaminTeuber/ThoughtsAboutGoProgramming. Oh well.
Benjamin: Right, once the perfect algorithm is found, maybe it can run faster using a 1d-structure or whatever. But I think the graph structure gives best opportunities for abstraction and is therefore best for finding algorithms.
Bill: I remember reading years ago the recommendation to choose data structures to make the programming easier. Relevant example: If the go board is represented as a set of connected sets of stones, and each set of stones has an associated set of dame, along with a dame count, determining if a move captures anything is relatively easy to program. For other purposes you may also want array representations.
The brain makes around 20 representations of the visual field and apparently constructs intermediate representations along the way to costructing a 3D image. Color recognition takes place elsewhere and is integrated later. (OC, the brain is also a parallel processor.) It seems to me that there is some similarity to constructing a meaningful view of a go board.