You use whichever is more efficient in what you are using.
If one is more efficient for one thing, doesn't mean you should use it for everything.
For example, entity_get_*() functions are more efficient than pev(), but fakemeta also has functionality that engine doesn't.
There is nothing wrong in using both fakemeta and engine, because they both have their own strengths.