Hi Maren,
Yes, it is mainly for searching purposes where we want to get the transaction based on different possible criteria. If you open CRMD_ORDER and try to search for transaction than you would see the most of the parameters which are available to choose are available in order_index table. That is also the reason we see the query on order_index table often in standard code than the query on orderadm_h table. This definitely also helps in performance.
Regards,
Jotsaroop Singh