eval() has no economic purpose. It hasn't been removed by browsers purely because that would break backward compatibility.
Non-same origin Javascript does not have economic purpose either. I believe, that it will be completely eradicated from browsers within this century (if not in couple of decades).