dplyr 0.3.0.9000 how to use do() correctly
Move EDIT2 in Q to answer to close the question:
For latest dplyr
0.3.0.2+, need to extract column "x" as suggested by @hadley
eaten2 <- eaten %>% group_by(person) %>% do(x = combn(.$foods, m = 2))
eaten2[["x"]]
# [[1]]
# [,1] [,2] [,3]
# [1,] "apple" "apple" "banana"
# [2,] "banana" "cucumber" "cucumber"
#
# [[2]]
# [,1] [,2] [,3]
# [1,] "spaghetti" "spaghetti" "cucumber"
# [2,] "cucumber" "banana" "banana