There is really just one underlying principle here: Any equation we write down should not depend on any arbitrary choices we made in order to define the quantities. All the examples you can discuss can be understood in this principle.
Can't add a vector and a scalar. Well, of course a vector is three numbers and a scalar is one number, so, for example, $\mathbf{v} + v$, , where $v$ is a speed, i.e. a scalar with units of velocity, doesn't even make mathematical sense. But we could add imagine adding one component of a vector to a scalar, i.e. $v_z + v$. But, this quantity shouldn't appear in a fundamental law of physics because our choice of what axis to call the $z$ axis is completely arbitrary, and if we made a different choice our equations would look different. But this is situation-dependent. For example, if we were discussing physics in a background uniform gravitational field, then we can use a convention where $z$ points along the direction of gravitational field. This is not arbitrary because the gravitational field sets a preferred direction. By declaring that we are going to call that particular direction the "z-direction'', it makes sense that any equations we then write down will only hold for that particular choice of $z$-axis. That is why the equation for the gravitational potential energy in a gravitational field, $U = mgz$, is valid even though $z$ is a component of the displacement vector $\textbf{r}$. However, you can still translate this equation into one that is valid for any choice of axes, namely $U = m \textbf{g} \cdot \textbf{r}$, where $\textbf{g}$ is the gravitational field vector.
Can't add numbers with different units. The point is that we normally work in units of physics which are chosen completely arbitrarily. If time $t$ is measured in seconds and position $x$ is measured in meters, then it
makes no sense to write down an equation involving $x+t$ because this equation would depend on our definition of "second" and "meter", and there is no reason why the laws of physics should depend on the second being defined to be 9,192,631,770 times the period of some radiation mode of a cesium atom. But, if we choose to work in natural units, then this is not an arbitrary choice because, as the name suggests, natural units are uniquely determined given fundamental constants of physics. In natural units, there is nothing wrong with writing an equation involving $x+t$, because we remember that we have made a special choice of units, and the equation will hold only in those units.
Of course, any equation that you can write in natural units can still be translated into arbitrary units. Take Einstein's famous mass-energy equivalence. In natural units ($c=1$) it states that $E = m$. Obviously, in arbitrary units, this is a bad equation because if $E$ is measured in Joules, and $m$ is measured in kg, then it would depend on the definitions of Joules and kg. But that's fine, because this equation only holds in natural units. Its translation into arbitrary units is $E = mc^2$, and the units now match up.
Can't add covariant 4-vectors and contravariant 4-vectors. Again, this is because in special relativity, in order to write down components of vectors we have to make an arbitrary choice of coordinate directions in space-time. Equations we write down in special relativity shouldn't depend on this choice, and this prevents us from adding covariant 4-vectors and contravariant 4-vectors because they transform differently when you change coordinate directions in space-time.
Can't add things in different vector spaces. This is just because, if $\mathbf{v}$ is in one vector space and $\mathbf{w}$ is in a totally different vector space, then you wrote an equation involving $\mathbf{v} + \mathbf{w}$ then it would depend on how you relate the bases between the two vector spaces, which -- given that they are totally different spaces -- there is no way to do non-arbitrarily.
The answers are no and no. Being dimensionless or having the same dimension is a necessary condition for quantities to be "compatible", it is not a sufficient one. What one is trying to avoid is called category error. There is analogous situation in computer programming: one wishes to avoid putting values of some data type into places reserved for a different data type. But while having the same dimension is certainly required for values to belong to the same "data type", there is no reason why they can not be demarcated by many other categories in addition to that.
Newton meter is a unit of both torque and energy, and joules per kelvin of both entropy and heat capacity, but adding them is typically problematic. The same goes for adding proverbial apples and oranges measured in "dimensionless units" of counting numbers. Actually, the last example shows that the demarcation of categories depends on a context, if one only cares about apples and oranges as objects it might be ok to add them. Dimension is so prominent in physics because it is rarely meaningful to mix quantities of different dimensions, and there is a nice calculus (dimensional analysis) for keeping track of it. But it also makes sense to introduce additional categories to demarcate values of quantities like torque and energy, even if there may not be as nice a calculus for them.
As your own examples show it also makes sense to treat radians differently depending on context: take their category ("dimension") viz. steradians or counting numbers into account when deciding about addition, but disregard it when it comes to substitution into transcendental functions. Hertz is typically used to measure wave frequency, but because cycles and radians are officially dimensionless it shares dimension with the unit of angular velocity, radian per second, radians also make the only difference between amperes for electric current and ampere-turns for magnetomotive force. Similarly, dimensionless steradians are the only difference between lumen and candela, while luminous intensity and flux are often distinguished. So in those contexts it might also make sense to treat radians and steradians as "dimensional".
In fact, radians and steradians were in a class of their own as "supplementary units" of SI until 1995. That year the International Bureau on Weights and Measures (BIPM) decided that "ambiguous status of the supplementary units compromises the internal coherence of the SI", and reclassified them as "dimensionless derived units, the names and symbols of which may, but need not, be used in expressions for other SI derived units, as is convenient", thus eliminating the class of supplementary units. The desire to maintain a general rule that arguments of transcendental functions must be dimensionless might have played a role, but this shows that dimensional status is to a degree decided by convention rather than by fact. In the same vein, ampere was introduced as a new base unit into MKS system only in 1901, and incorporated into SI even later. As the name suggests, MKS originally made do with just meters, kilograms, and seconds as base units, this required fractional powers of meters and kilograms in the derived units of electric current however.
As @dmckee pointed out energy and torque can be distinguished as scalars and pseudo-scalars, meaning that under the orientation reversing transformations like reflections, the former keep their value while the latter switch sign. This brings up another categorization of quantities that plays a big role in physics, by transformation rules under coordinate changes. Among vectors there are "true" vectors (like velocity), covectors (like momentum), and pseudo-vectors (like angular momentum), in fact all tensor quantities are categorized by representations of orthogonal (in relativity Lorentz) group. This also comes with a nice calculus describing how tensor types combine under various operations (dot product, tensor product, wedge product, contractions, etc.). One reason for rewriting Maxwell's electrodynamics in terms of differential forms is to keep track of them. This becomes important when say the background metric is not Euclidean, because the identification of vectors and covectors depends on it. Different tensor types tend to have different dimensions anyway, but there are exceptions and the categorizations are clearly independent.
But even tensor type may not be enough. Before Joule's measurements of the mechanical equivalent of heat in 1840s the quantity of heat (measured in calories) and mechanical energy (measured in derived units) had two different dimensions. But even today one may wish to keep them in separate categories when studying a system where mechanical and thermal energy are approximately separately conserved, the same applies to Einstein's mass energy. This means that categorical boundaries are not set in stone, they may be erected or taken down both for practical expediency or due to a physical discovery.
Many historical peculiarities in the choice and development of units and unit systems are described in Klein's book The Science of Measurement.
Best Answer
If you set $\hbar = c = G = 1$ then any physical quantity can be declared equivalent to any other physical quantity and you can transform an expression that says that this is so in any other unit system, e.g. SI units by putting in the right factors involving $\hbar$, $c$, and $G$. This is most easily done by constructing quantities with the dimensions of length, time and mass using $\hbar$, $c$, and $G$, these expressions are known as the Planck length, Planck time and Planck mass, see here for details.
Then given an equation in $\hbar = c = G = 1$ units, you can then find the correct SI units equivalent by dividing all the variables in the equation by the Planck unit of the variable and multiplying the end result by the Planck unit of the desired physical quantity. Because you start out with $\hbar = c = G = 1$, you are not changing anything to the equation, but because it's now also dimensionally correct in SI units, it's is the correct SI equation when you substitute the SI values for $\hbar$, $c$, and $G$.
Example, if you equate a mass $M$ to a length $L$ in $\hbar = c = G = 1$ units:
$$M = L$$
then we are free to put in arbitrary powers of $\hbar$, $c$, and $G$ because they are equal to 1 anyway. We can then divide the l.h.s. by the Planck mass and the right hand side by the Planck length, this yields:
$$M \sqrt{\frac{G}{\hbar c}} = L\sqrt{\frac{c^3}{\hbar G}}$$
We can write this as:
$$L=\frac{M G}{c^2}$$
which is dimensionally correct in SI units.
You can play this game with any arbitrary expression, e.g.
$$M^3 \exp(M/L) = L^5$$
can be transformed into a dimensionally correct SI expression with almost no effort (I leave this as an exercise for the OP).