nebolsin Being able to search keys is good but being able to search key values is even better. In my case I use custom data for one of two things.
1) Storing locations for external data. So if I'm recording an account as a holder or issuer of a particular NFT I may record the metadata for that NFT in an external database with a marker in the issuer account's custom data. In this case the key would be unique and the data would be unknown and thus unnecessary to search for.
2) In the other case however I'm starting in an external database and trying to find a particular account by some marker value. So maybe I have marked accounts with ipfs address locations and would like to be able to find the Stellar account which matches one or more of a particular ipfs address which I have stored in custom data. In this case I would search for the value and not the key. Granted I have to search for the serialized value but that's not difficult as Stellar has the method for how they do the serialization so you just have to do that to the term before searching for it.
Hopefully that makes sense. Being able to do both has been very valuable in my own application development and while others have mentioned primarily searching key values and not the data itself both are valuable.