has made it possible to have perfect input/output to the brain from a computer
Perfect? Definitely not: the complexities of optogenetics of a single mm square of cortex, of a mouse lets say, are extremely complex. As Chuck mentions, many neurons/synapses may be activated by a single LASER and current technologies allow only a few different LASER frequencies to be used simultaneously. For 'perfect input/output' it is easy to imagine a system whereby one would need thousands of different LASER operating at different frequencies to individually control/read thousands of neurons. (This blog post by Mark Baxter is a nice summary of the issue of hype with optogenetics.)
Furthermore, this assumption completely ignores synapses, glial cells, dendritic branchs etc. which may be important for computation in the brain and might therefore need to be considered for any I/O system.
Why does having the ability to fire and read the firing information off of individual neurons not imply that a seamless human-computer interface is possible?
You are assuming that everything the brain does is encoded in the firing rate of individual neurons. This is a massive assumption to which a lot of evidence is in the contrary. For example, there is evidence suggesting that the visual system does not have time to encode information in firing rates and it is postulated that the 'time to first spike' is important in this domain (first paragraph of the introduction has a nice summary of the reasoning/evidence behind this hypothesis). Furthermore, as I mentioned above, firing rates are an extremely small part of the brain, and just one of many many different ways the brain may encode/decode information (we do not know which, see sections 1.5, 1.6 and 1.7 for different methods the brain may employ).
To finish, one point which comes to mind currently limiting optogenetics is 'depth'. Light transmission falls off quickly through neural tissue: reduced by 50% after 100 $\mu$m, and by 90% after 1mm. If one wanted an input/output system connected to a computer to control/read a part of a brain 1cm below the surface one would (currently) have to chop out the neural tissue in the way -- this is a big problem!
(Edited with some references.)