You are absolutely correct, there is almost always a tradeoff between resource
usage and clarity of an API. My personal opinion is to get clarity first and
then deal with performance. Often I have found that focusing on the clarity of
code first results a system which naturally performs well enough. If it doesn't
you can always go back and refactor.