While the concept of a function is intuitive, it involves a lot of quantifiers that seem arbitrarily chosen. Why must every source be sent to one, and only one target? We don't demand codomains to be in the entire image, so why must all elements in the domain have a corresponding output? Of course, there are practical reasons for this, but said practicality only serves to facilitate computations in existing function-based theories. This is circular reasoning.
The concept of functions is certainly useful, but why not consider it a special case of relations, as we do with injective and surjective functions? For instance, what if we based algebra on "multimorphisms" where if aRb and cRd, then (a+c)R(b+d), R being a relation between two groups. This route would require a rewriting of several fundamental branches of math, and some simple situations may be more complicated to describe, so I doubt we'd see a revision on such a massive scale. But could there be any interesting phenomena to be gleaned?