Is a custom field type and making use of modifyElementsQuery the only way to add my own craft.entries element criteria model attribute to modify the elements query?
What if I do not want to add a new field to each entry type I want to use my attribute with? The field would be a hidden pseudo field anyways, as I'm only working with other fields' data.
My current solution is passing the element criteria model with all other params set to craft()->elements->buildElementsQuery() using a template variable. It works, yes, but I would really like to avoid this (pagination not possible and some other disadvantages).