(I'm making the assumption you intended to use the plural form of "test case" and meant ALL of your testing.)
Automating everything is a waste of time and money. Some things take longer to execute in test automation then they do manually. Some things are very difficult to automate so are not worth the effort. Then there is the fact that at every release you have to modify the suite in some fashion. That takes time. Eventually you reach a point where your automation resources, the people doing the test automation, canít get all the scripts working during a dev cycle. As with most everything there is a point of diminishing returns. Once you reach that point then any additional automation is a waste.
Not to mention exploratory testing which is almost impossible to do using automation.
One other assumption: Iím assuming that your test suite includes all the tests youíve thought of. I have actually automated all the tests that are going to be done on a particular application but in no way am I saying that was all that could, or should, have been tested on that application.
If you're a slave to your free associations, does it automatically become something else?
Mark is right. Remember that an automated script will execute the same way every single time. Because of this fact it might miss issues that manual testing would detect easily.
Some tests can be very difficult to automate and might not be worth the time. The best approach is to combine both methods during your test cycle. Automate the repetitive, test cases and have users manually step though the environment for grey-area requirements.