In the old usage, as well as contemporary usage in set theory, one may consider a function without specifying a particular codomain or target set. (The insistence that a function come along with a particular codomain is a comparatively recent innovation, probably arising in Bourbaki.)
That is, if one understands a function merely to be a set of ordered pairs satisfying the function property (that each input is associated to one output), or as a rule associating to every object in a domain an output value, then it is true to say that a function is one-to-one if and only if it is a bijection from its domain to its range. Thus, injective functions really are one-to-one in the sense that you want.
Of course, this one-to-one terminology was long established by the time Bourbaki wanted to insist that functions come along with a specified co-domain, giving the definition of function as a triple consisting of domain, codomain and set of ordered pairs. The fact that in this context the concept of one-to-one doesn't tell the whole story may be part of the reason that they introducted the injective, surjective, bijective terminology.
But meanwhile, a function is one-to-one if and only if it provides a one-to-one correspondence between its domain and its range. This is perfectly logical, and seems to be the explanation that you are seeking. I would think that the one-to-one terminology begins to seem illogical only when one also insists on attaching to the function a target set or codomain that is not the same as its range, which is, after all, a somewhat illogical thing to do.