The catch is that inserts will take more time (or other table modifications) and the index file size.
If your application is mostly for querying over huge database you might live fine with this catch, and basically improve performance with no catch.
If insertion or other reindexing table modifications occur frequently you would have to balance number of indexes so performance of most important tasks is optimal, and less important tasks will be not so fast.
What you cannot do without a catch is to keep both select and insert speed super fast.