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
This is really not that big of a deal. In essence, though, the dimensions of zero are ill-defined, and $[0]$ (i.e. the dimensions of zero) is (a) not meaningfully defined, and (b) never used in practice.
Let me start by making one thing clear:
Yes, this is perfectly OK, and it is standard practice.
The dimensionality map $[\,·\,]$ has multiple different conventions, but they all work in much the same way. The key fact is that physical quantities form a vector space under multiplication, with exponentiation (over the field $\mathbb Q$) taking the role of scalar multiplication. (This is the essential reason why dimensional analysis often boils down to systems of linear equations, by the way.) The different base dimensions - mass, length, time, electric charge, etc. - are assumed to be algebraically independent and to span the space, and the dimensionality map $[\,·\,]$ reads out the 'coordinates' of a given physical quantity in terms of some pre-chosen canonical basis.
This only works, however, if you exclude zero from the game. The quantity $1\,\mathrm m$ has a multiplicative inverse, but $0\,\mathrm m$ does not, so if you included it it would break the vector space axioms. This is in general OK - you're not forced to keep those properties - but it does preclude you from using the tools built on that vector space, most notably the dimensionality map. Thus $[0]$ doesn't map to anything.
Since you explicitly asked for it, here's one way you can formalize what I said above. (For another nice analysis, see this nice blog post by Terry Tao.)
You can then easily check that these two operations satisfy the vector space axioms. The above construction is, in fact, a specific instantiation of the abstract vector space $\mathcal Q$ of physical quantities, but it suffices to take one specific example to show that this works.
As an aside, the choice for $\mathbb Q$ as the scalar field is because (a) it's essential for the vector space structure, and (b) it's still somewhat reasonable to have things like $\mathrm {m}^{-3/2}$ (e.g. the units of a wavefunction). On the other hand, things like $\mathrm {m}^{\pi}$ cannot be made to make sense.
The dimensionality map $[\,·\,]$ is, first and foremost, an equivalence relation, that of commesurability. That is, we say that for $p,p'\in\mathcal Q$, $$[p]=[p']\Leftrightarrow p/p'=(x,0,0,0,0,0,0,0)\text{ for some }x\in\mathbb R^\times.$$ This is in fact all you really need to do dimensional analysis, as I argued here, but it's still useful to go on for a bit.
The really useful vector space, if you want to do dimensional analysis, is the vector space of physical dimensions: the space of physical quantities once we forget about their numerical value. This is the quotient space of $\mathcal Q$ over the commesurability equivalence relation: $$\mathcal D=\mathcal Q/[\,·\,]=\{[p]\,:\,p\in\mathcal Q\}.$$ (Here I've abused notation slightly to make $[p]$ the equivalence class of $p$, i.e. the set of all physical quantities commensurable to $p$.) The vector space of physical dimensions, $\mathcal D$, has the same operations as in $\mathcal Q$:
It is easy to check that these definitions do not depend on the specific representatives $p$ and $p'$, so the operations are well-defined.
Dimensional analysis takes place in $\mathcal D$. From the definitions above, you can prove that the seven base units give rise to a basis $\{[1\,\mathrm {kg}], [1\,\mathrm m],\ldots,[1\,\mathrm{cd}]\}$ for $\mathcal D$. More physically, though,
These are the key physical requirements on a set of base units for the abstract space $\mathcal Q$.
After this, you're all set, really. And it should be clear that there's no way to make zero fit into this scheme at all.