Now, you might notice that before and after each bit of \text{...} there is a "normal sized space". I can't imagine why I wouldn't want that space there, but I have to add it manually. Surely this should be the default behaviour of mathmode's text macro?

Again, that shouldn't be spaced out. Also, like in Caramdir's answer, I re-entered math mode within the \text, which often solves the spacing problems as well. You could define an \stext command for spaced out text:

\newcommand*{\stext}[1]{\text{ #1 }}

(Literal spaces inside are the same as \ outside, I believe.) Another option might be

If you want to introduce automatic spacing before or after \text, your best option is probably to make \text behave like an operator (\mathop), which is the closest thing to text inside math mode. The spacing introduced will be slightly smaller than normal text, but should still be acceptable. Here's the code (making sure that \text still works in text mode):

If you compare this to the respective commands \textbin and \textrel which are of type \mathbin and \mathrel (suggested in Antal's answer), you see that it works quite well in these typical uses of \text, even if the spacing is tight:

These commands also all fail at the begining of an {align} (e.g. \begin{align} & \text{...}):