Advantages of utilizing Entity Field query over views? I've been reading a little about entity field queries.

What are the advantages of using entity field queries (EFQ) over views?

What are the largest pain points/disadvantages of using EFQ ?
Advantages of EFQ:


It's in Core, so you don't actually depend on an extra contrib module. Sometimes Views isn't considered an option.
It's very easy to handle programmatically, while Views is kinda awkward to handle in code.
I have made no performance measurements, but based on the fact that EFQ's are simpler than Views, I believe it will often have better performance.


Advantages of Views:


You can do (almost) arbitrary joins and collect most any kind of data. EFQ finds entites and their fields, period. It's also fairly easy to expose new data to Views. There's even a module for that.
It has a UI, and is as such far more user-friendly than building everything in code.
Views can easily be cached. An EFQ needs custom logic for this.