Are units of angle really dimensionless? I know mathematically the answer to this question is yes, and it's very obvious to see that the dimensions of a ratio cancel out, leaving behind a mathematically dimensionless quantity.
However, I've been writing a c++ dimensional analysis library (the specifics of which are out of scope), which has me thinking about the problem because I decided to handle angle units as dimensioned quantities, which seemed natural to enable the unit conversion with degrees. The overall purpose of the library is to disallow operations that don't make sense because they violate the rules of dimensional analysis, e.g. adding a length quantity to an area quantity, and thus provide some built-in sanity checking to the computation.
Treating radians as units made sense because of some of the properties that dimensioned quantities seemed to me to have:

*

*The sum and difference of two quantities with the same dimension have the same physical meaning as both quantities separately.

*Quantities with the same dimension are meaningfully comparable to each other, and not meaningfully comparable (directly) to quantities with different dimensions.

*Dimensions may have different units that are scalar multiple (sometimes with a datum shift).

If the angle is treated as a dimension, my 3 made up properties are satisfied, and everything "makes sense" to me. I can't help thinking that the fact that radians are a ratio of lengths (SI defines them as m/m) is actually critically important, even though the length is cancelled out.
For example, though radians and steradians are both dimensionless, it would be a logical error to take their sum. I also can't see how a ratio of something like (kg/kg) could be described as an "angle". This seems to imply to me that not all dimensionless units are compatible, which seems analogous to how units with different dimensions are not compatible.
And if not all dimensionless units are compatible, then the dimensionless "dimension" would violate made-up property #1 and cause me a lot of confusion.
However, treating radians as having dimension also has a lot of issues, because now your trig functions have to be written in terms of $\cos(\text{angleUnit}) = \text{dimensionless unit}$ even though they are analytic functions (although I'm not convinced that's bad). Small-angle assumptions in this scheme would be defined as performing implicit unit conversions, which is logical given our trig function definitions but incompatible with how many functions are defined, especially since many authors neglect to mention they are making those assumptions.
So I guess my question is: are all dimensionless quantities, but specifically angle quantities, really compatible with all other dimensionless quantities? And if not, don't they actually have dimension or at least the properties of dimension?
 A: Here is a pragmatic answer from someone who has actually written comprehensive unit libraries many times in many languages (everywhere from Mathematica to Simulink to Excel) for many purposes over many years. So both of these bullet points are based on my personal experience:


*

*If you're making a general-purpose unit library intended for lots of people doing lots of things, I suggest that you should NOT make angles a unit, because there are lots of "gotchas", where typically you need to multiply or divide some random quantity by "radians" in a context where doing so makes no intuitive sense, and it will become a point of confusion and frustration for your users.

*If you are making a unit library for a particular application where angles or solid angles come up frequently, where the physics formulas are relatively simple and narrow-domain, and where only you or your close colleagues are using the code, then I DO recommend making angles a unit, because the extra error-checking benefit outweighs the occasional confusing "gotcha". (The "gotchas" will be limited in number, and you'll be in a position to learn when to expect them and to intervene.)

A: If I've understood your question correctly, you're looking for a case in physics where angles are added to any dimensionless but non-angular quantity. I don't think this happens too often, but it's possible.
For example, consider a gauge transformation of QED. The electron field transforms as
$$\psi \to e^{ie\theta(x)} \psi$$
so $\theta(x)$ is an angle. But the electromagnetic field transforms as
$$A_\mu \to A_\mu + \partial_\mu \theta(x)$$
so we are adding an angle to a nonangular quantity.

On a deeper level, the reason that you don't often see angles added to non-angles is because angles are only defined up to multiples of $2\pi$, while most non-angular quantities aren't. So you can't add an angle to a physical dimensionless quantity with a definite value. My above example only works because of gauge symmetry: $A_\mu$'s exact value is not physical, so it allows some degree of redefinition.
A: I'm not up to the task of rebuilding geometry from the ground up, but my intuition is that this is sensible and it can be done consistently. It seems to be true that logarithms (or inverse trig functions) take you into a different (transcendental) numerical realm, and exponentials (or trig functions) take you back, and adding quantities from different realms doesn't work. That's exactly the situation in which units are useful.
Calling it "angle" is not general enough, because it also applies to the logs of real numbers. The number of bits of information in a system is the base-2 logarithm of the number of equiprobable states, and "bit" is often used as a unit for that. Likewise, "nat" is used for the base-e logarithm. If this is all consistent, then "nat" and "radian" are the same unit.
If the logarithm has dimension, then it no longer has a base: the choice of unit replaces the choice of base. The baseless logarithm satisfies $\frac{\mathrm d}{\mathrm dx} \log x = ə/x$ and $\int \log x \, \mathrm dx = x\log x - əx + C$, where $ə = \log e = \lim_{n\to\infty}n\log(1+1/n) = 1\,\text{rad}$. Note that these equations also hold for ordinary logarithms to any base, even though they never mention the base—just like any other dimensionally correct equation. The factors of ə may look odd, but I think that's just a lack of familiarity. No one bats an eye when $\pi$ or $c$ shows up all over the place.
Arc length probably shouldn't be just $r\theta$, because that has dimensions of $\text{length}\cdot\text{angle}$. Of course you could write $r\theta/ə$, but I think a nicer approach is to generalize to arbitrary Gaussian curvature $k$. The dimensionless formula is then $r\theta\,\text{sinc}\;r\sqrt{k}$, or, for a solid angle $\Omega$ on a $d$-sphere, $\Omega(r\,\text{sinc}\;r\sqrt{k})^d$. This works without modification if you give $k$ dimensions of $(\text{angle}/\text{length})^2$, which seems sensible, and the dimension of the result is then $\text{length}^d$ without the need for any extra factors.
Euler's formula becomes $\exp iə\tau = 1$. (Or $\exp iə\pi = -1$, but as long as we're reconstructing mathematics we may as well institute some other reforms.)
Given that you often see "bit", "nat", "rad", "deg" etc. as ad hoc units, it's odd that it has never been formalized (to my knowledge). Of course, mathematicians have never cared for units. But physicists love them.
A: I personally think that one should not confuse an angle, say $\alpha$, and the ratio between $\ell$ the arc length of a circle and its radius $r$, at least from the outset. As far as fundamental concepts are concerned, angles need a new type of "thing" to be talked about; they are neither a length nor a time interval for example.
Moreover, from a geometrical point of view an angle is defined by the values of its sine and cosine, period. In that respect, the "angular dimension" could be conceptually thought as being a portion of a circle.
The fact that when someone looks at a circle close enough, i.e. for small angles, then an arc length is well approximated by a straight segment then gives a relationship of the kind 
\begin{equation}
\sin \alpha \approx \frac{\ell}{R}
\end{equation}
The number (and not the unit) that will appear on the right hand side will be a fraction of the number $2\pi$. Now, if we name $\alpha_{tot}$ the total angle spanned by a circle and say that the above approximation is fine if e.g. $\alpha = \alpha_{tot}/{10^6}$, then we get that
\begin{equation}
\sin \frac{\alpha_{tot}}{10^6} \approx \frac{2\pi}{10^6}
\end{equation}
It is then a matter of choice, I think, to decide that the natural unit for angles is that of radians so that $\alpha_{tot} = 2\pi \: rad$.
Because of the above equality however this leads to important consequences:


*

*Radians have to be dimensionless

*The sine and cosine functions are the only functions in a calculator that care about the unit 

*The equation $\ell = \alpha R$ is only valid if $\alpha$ is expressed in radians. So, in a way, it is not a complete equation in the dimensional sense because it becomes false if one expresses the angle unit in degrees for instance.

A: Think in terms of coordinate transforms as a generalization of unit conversions.
When converting between units, you are doing a very simple coordinate transform on the, single, corresponding physical dimension:  
Multiplication*.
When adding two angles, you are really dealing with, for example, a polar coordinate system.  The underlying territory (physics) remains the same but the map changes when you try to add two angles together.  The new map is still a two dimensional one with Cartesian grids, but it is a warp of the old map -- like a Mercator Projection of Earth.  All of the concerns about  the dimensionality of expressions like "tan(angle)" are then hidden in the coordinate transforms which are, themselves, dealt with as a generalization of units conversions.
With polar coordinates there is, in addition, a new twist in that one of the dimensions is finite -- it wraps around.  That means the map is actually a cylinder of infinite length but finite circumference.  Modulo arithmetic then becomes key to the notion of commensurability.
As for vector quantities like "height-meter" and "length-meter" -- they  involve vector operations. Dimensional analysis can be applied to vector quantities and their operations just as it can be to scalar operations.
*Converting between temperatures is multiplication with an offset but it is still a coordinate transform on a single dimension.
A: Thing is that the very concept of "dimensions" is unphysical in general, it's a human construct that was invented to allow people to do computations when not being able to compare different quantities for whatever reason (insufficient knowledge, wanting to use incompatible units in the same equation etc.). In reality, everything really is dimensionless, because what would it mean for some physical quantity to be fundamentally dimensional? Could you do an experiment to demonstrate this? Obviously not, so the notion of dimensions is unfalsifiable, it's just a convention that we stick to (when we don't use natural units).
So, an angle is indeed dimensionless, but fundamentally so are lengths, time intervals, masses temperatures etc. etc. Now, as pointed out in the other answers, adding up an angle to some dimensionless quantity won't always make sense, but then the same thing can be said about lengths, time intervals, masses etc.  While you can use natural units by putting $\hbar = c = G = 1$ and discard any notion of dimensions, it still won't make sense in general to add up some random expressions for physical quantities.
But how come dimension analysis can work if the whole notion of dimensions is bogus? The reason is that it can appear from a bona fide scaling argument. One should consider that with the constants $\hbar$, $c$, and $G$ available no dimensional argument can be set up, as you can always convert from one dimension to any other using these constants. So, dimensional analysis always has to come with some additional ad hoc rule depending on the problem at hand to not use one or more of these constants.
What does it mean to impose a rule that bars you from using $c$ to convert lengths into time intervals and vice versa when doing dimensional analysis? You could say that this means that relativistic effects can be ignored. But that means that when using natural units we could rescale time intervals relative to lengths by introducing a dimensionless scaling constant $c$ which appears exactly where we normally put the speed of light in equations and then consider the scaling limit where $c$ is sent to infinity. This is then how should re-interpret dimensional analysis.
Now scaling arguments are of course not limited to lengths, time intervals etc.,  you can come up with scaling arguments that involve angles, e.g. when doing calculations in the limit of small angles. But otherwise, when angles are not small, there is no obvious scaling limit one is working at, therefore the notion of assigning a dimension to an angle is as unnatural as not using $c = 1$ units in special relativity. 
A: The Dimensions of Angle depend on one's viewpoint and purpose (of using dimensions).
Likewies the Units (and implicitly scale) of angle also depend on the local customs and practices that support those viewpoints and purposes.
Personally, I want Angles to be a dimension, particularly for error detection and correction in scientific and engineering calculations. There are compptational tools that do include dimensional checking and prediction, such as MathCAD, Mathematica (add-on), Maple, etc. but they are not as common as they could be.
Those that use basic (pure numbers) numeric calculation tools often don't see the problem, so the arguments get heated.
Likewise, historically, when pencil and paper prevailed, the determination of Units and Dimensions was independent of the arithmatic so similar issues occurred. The ability to include Unit scaling and Dimensions in the symbolic calculations was never taken up.
For mathematicians, it is normally important to achieve a level of abstraction in the applicability of the mathematical theories. They have a generic concept 'length', which others then confuse with the every day notions of Length as measure by a ruler (or equivalent). 
It should be noted that Length is not actually a dimension. Rather it is a metric of the 3D space. If Length was just a 1D (real) space, then there would be no Angle problem, as there would be no 6-degrees of freedom issue for bodies within the Length space (the second 3 degrees are the angles!).
Complexification could be an issue (for a 1D Length space), but one would have to ask "Where does that orthogonal imaginary dimension reside?".
On the presumption that the disambiguation of result reporting and computation did become re-allowed (in SI) via "supplementary Dimensions", then it would greatly reduce the number of errors in engineering and science, and improve the computation tools thet start to use them.
In a few places there would need to be extra 'education' such that Torque becomes defined as Newton metres per radian, and hence distinct from Work (Newton metres). Bad habits take a long time to unlearn!
There is a good review article on the issues around getting the SI ready for the automation age at http://iopscience.iop.org/0026-1394/47/6/R01/ [stacks.iop.org/Met/47/R41].
There is another paper by Hall on the needs of software systems"Software Support for Physical Quantities" (was http://mst.irl.cri.nz/Portals/5/enzcon.pdf, available at https://www.researchgate.net/publication/236673054_Software_support_for_physical_quantities)
I have also made proposals to Mathcad, but the document is not currently visible https://www.ptcusercommunity.com/docs/DOC-1501
A: No.
Beside the already mentioned examples here some real problems with different dimensionless quantities and why they cannot be mixed. :(
Starting with angle velocity units:


*

*Hertz (Hz) for frequency $f$ measured in periods per seconds (which is equivalent to $\frac{2 \cdot \pi}{s}$)


or


*

*Angular frequency $\omega$ measured in $\frac{rad}{s}$


You can choose freely if you calculate the photon energy with $hf$ or with $\hbar \omega$. If you peruse books, you will find out to your dismay that many books using frequency values do not mention if they mean angular frequency or normal frequency (especially theoretical works about optics and vibrations in general). 
It gets even worse with the steradiant:
The Gaussian unit system thought it was a great idea to eradicate the inverse factor $4 \cdot \pi$ in Coulomb's law. The problem is that the factor must occur if you are integrating charges over a closed solid angle, so erasing the factor means that the Gaussian system sets the complete solid angle, a full sphere equivalent to 1. This causes endless pain if you try to handle luminosity equations in the Gaussian system. The other problem is that SI and Gaussian units cannot be easily converted. In Gaussian units polynomic equations retain the factor 1 while the SI units need to adjust the equations to $(4 \cdot \pi)^n$.
A: Here is an entertaining mathematical answer. (Or at least, I find it entertaining, anyway.)
Let us take seriously the idea that we can treat radians as a unit, and proceed from there. This means that when we write an expression like $\sin \theta$, the argument $\theta$ must have units of radians, whereas the result (I'll assume) is just a number without any units. Or to put it another, way, the expression $\sin^{-1} x$ has units of radians.
Now, since we can write $\sin\theta$ as $\frac{i}{2}(e^{-i\theta}-e^{i\theta})$, that means the argument to $e^\theta$ must also have units of radians. Or, to put it another way, any expression of the form $\ln x$ has units of radians, since the logarithm is the inverse of the exponential.
However, we can quickly get into trouble here, since the integral of the logarithm is given by
$$
\int \ln x \,dx = x\ln x - x + C.
$$
Assuming $x$ is a dimensionless number, the term $x\ln x$ has units of radians, but the $x$ term is dimensionless. When I first wrote this I thought this was an inconsistency of the kind you were looking for, where a quantity in radians is added to a dimensionless quantity.
However, this might be a solvable problem. benrg has a very nice answer, in which he points out that you can write the solution to the above integral as $x\ln(x/e) + C = x\ln x - x\ln e + C$, with the point being that $\ln e$ is a constant with the value 1 but units of radians, so the units of the expression are radians overall.
In fact, as benrg points out, we can write $\int \log x \,dx = x\log x - x\log e + C$ for a logarithm of any base. So if we consistently use units this way we never have to worry about what base we're using for our logarithms - the concept of the base of a logarithm just goes away. This seems to be consistent and I rather like it.
All this might be worth thinking about a bit more some time, on a rainy afternoon when there's nothing else to do. My original point here was to show that it isn't straightforward to treat radians as a unit, even in the world of pure maths, but then benrg showed that it might nevertheless be possible to do it consistently, which I find interesting.
A: 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.
A: You can't add dimensionless quantities willy-nilly for the simple fact that a particular dimensionless quantity represents a particular physical thing. Using the examples you gave, you can't add m/m to kg/kg because they represent different quantities; one is an angle and one is a partial mass content.
This can even go for dimensional quantities though. So you have a truck, which being a 3D object has a length, height and width. These are all measured in units of length such as meters, but they don't represent the same value. If I wanted to know how long five trucks are end to end, I couldn't use the width or height because those values aren't relevant to what I'm measuring or calculating - even though they are the same type of unit, I.e. of the same dimension.
So more so than just checking that the equation is dimensionally consistent or even unit consistent, for your library to make sure that dimensional manipulations really make sense it would have to know what the values actually represent and factor that in.
A: Think of it this way: is dozen dimensionless?
radians (1), degrees (0.017), and gradians (0.0157) are all like dozen (12).
Convention says that degree is for angles, and dozen is for eggs.  No one goes around saying 562 degrees m/s/s, just like no one says 0.82 dozen m/s/s. They say 9.8 m/s/s. But they totally could. There's no fundamental mathematical or physical reason at play, just convention for communication purposes.
In other words, just treat 90 degrees as you would if you were given 1.8 dozen.


*

*On the one hand, it's "just" a scalar quantity. If you multiply a length by it, you get a length. If you multiply a mass by it, you get a mass. (FYI, lest you think otherwise, the famed circumference/radius ratio can show up in some unexpected places.)

*On the other hand, 3 dozen plus 4 units is not 7 dozen; you need to account for the difference somewhere.


Exactly how or where you do this is up to you. Just know that the difference is not one of dimension but rather magnitude.
A: Whenever I think about this problem I go back to one of Joel Spolsky's articles, "Making Wrong Code Look Wrong", which talks about Hungarian notation. Not only the useless kind of Hungarian notation, where variables are named in a way that describes their types (f_pos for a float, d_pos for a double, etc.) - this is "Systems Hungarian" in the article - but the original, practical kind, "Apps Hungarian", where the name of a variable reflects what kind of physical quantity it represents. x_pos and y_pos for horizontal and vertical position, for example.  Or in an example that might be more relevant to your case, circ_length and rad_length for circumference and radius, respectively.
In Apps Hungarian, if you ever found yourself writing circ_length + rad_length, you would suspect that something was wrong because you shouldn't be adding circumference and radius. Even though they're dimensionally consistent, they're not compatible in some sense. You'd want to rewrite it as something like this:
circ_length + circ_from_rad(rad_length)

Unit systems are a (somewhat limited) physical equivalent of Apps Hungarian. We use different units to denote different variables that are not compatible and shouldn't be added together.
This might seem like a weird perspective on units at first. After all, it seems intuitively obvious that length and time are different in some way that, say, height and width aren't. But then relativity came along, and we learned that length and time actually are compatible, you just need to do the right conversion.
prime_t, prime_x = prime_from_normal(normal_t, normal_x)

or in other words,
$$\begin{pmatrix}ct' \\ x'\end{pmatrix} = \begin{pmatrix}\gamma & -\beta\gamma \\ -\beta\gamma & \gamma\end{pmatrix}\begin{pmatrix}ct \\ x\end{pmatrix}$$
Then quantum mechanics came along and we learned that energy and frequency are also kind of the same thing.
energy = energy_from_freq(frequency)

$$E = \hbar\omega$$
And then quantum gravity came along and somebody invented Planck units, and that goes all the way down the rabbit hole to the point where everything is just a number, and you can freely add masses and charges and forces.
Stay away from quantum gravity.
Anyway, if it's so easy to reduce the number of distinct units by showing how they can all be converted into each other, you can also reverse the process. You'd treat the unit systems we have as reduced versions of more complicated systems that distinguish between quantities we normally think of as being the same. Height and width, for example. You could have "height-meter" and "width-meter" as effectively separate units. Or, in your case, "circumference-meter" and "radius-meter", in which case you'd define
$$1\ \mathrm{rad} = \frac{1\ \text{circumference-meter}}{1\ \text{radius-meter}}$$
In your system, this is not going to be the same as $\frac{1\ \text{height-meter}}{1\ \text{width-meter}}$. You can make it the same by turning all these units into meters, in which case you'd recover the metric system, but then you lose the extra contextual information provided by your unit system.
Here's a practical example: slope $m$ is defined as height over (horizontal) length, $\Delta y/\Delta x$, which means the units of slope are
$$[m] = \frac{\text{height-meter}}{\text{length-meter}}$$
On the other hand, angle $\alpha$ is defined as circumference over radius,
$$[\alpha] = \frac{\text{circumference-meter}}{\text{radius-meter}}$$
The relationship between these two is
$$m = \tan\alpha$$
so in this augmented unit system, you know that the tangent takes in units of $\frac{\text{circumference-meter}}{\text{radius-meter}}$ and gives a result in units of $\frac{\text{height-meter}}{\text{length-meter}}$.
However, there is a problem. What if you're doing a calculation involving the transverse and recessional velocities of a star? (Perpendicular and parallel to your line of sight, respectively.) In that case, you still use the tangent function, but you might get a result in units of $\frac{\text{length-meter}}{\text{height-meter}}$. Strictly speaking, this probably means you should have a separate function that would produce this kind of output. In practice, you can take it too far. Giving everything separate units is often more trouble than it's worth.
So you'll have to strike a balance between the two extremes. Many people agree that having angles designated by a unit to preserve the contextual information that they are angles (not something else) is useful. You can meaningfully use that information with trig functions: a function like $\tan$ has to take as input an angle, or a "circular" ratio of lengths (circumference to radius or such), and give as output a "rectangular" ratio of lengths (height to width or vice-versa or some such thing). The radian might be a "fake" unit, sure, but in a way it's no more fake than a unit of velocity, or angular momentum, and it is useful information to maintain.
A: I answered another unit based question very much related to this.  In it, I pointed out that units are not a fundamental concept in the underpinnings of the universe.  They are a concept which people have found helpful for relating the real world to mathematical equations we use to describe the world.  Thus, their primary purpose is to be useful.
In mathematics, it's clear that radians are actually unit less ratios, which makes degrees actually a scalar of $\frac{\pi}{180}$.  However, in many engineering disciplines, it is more useful to treat them as units in their own right, and only "drop" them when necessary, such as for us in a pre-existing sin or cos function.
Boost, arguably the premiere C++ library in existence, has a units system in it, Boost.Units.  Boost.Units defines angular units which are not dimensionless.  In fact, they define a planar_angle dimensionality, describing radians and degrees, and a solid_angle dimensionality, describing steradians.  They are distinct dimensionalities in Boost.Units, even though in mathematics they are both ratios, so you are in good company for thinking about angles as not quite dimensionless quantities.
A: Dimensionless is not a dimension, but rather the lack of it. Your made-up rule #1 would not be violated because it applies only  to quantities that have dimensions.  If you also want to handle quantities that lack dimension, then you will have to know what were the dimensions, before they "cancelled out."   For example: if you have a quantity that has l/l and another that has m/m, then you know they are not "compatible" even though ( after their dimensions cancel) they appear to be. If you can't get the prior history, then simply "flag" the result as, "result may not be valid because dimensionless quantities are involved."
As far as angles are concerned, they do have dimensions (degrees, radians, steradians).  There should be no problem adding (or subtracting) angles with the same dimension. So, as long as a dimension is "attached" to each quantity, there should be no problem "handling" it.  
A: The question of whether we use radians or degrees to quantify an angle is not a question of dimensions, it is a question of which definition we use for an an angle.
You can see this answer for a longer explanation. But basically, think for a moment about matter density. This may have dimensions of $\frac{\text{kg}}{\text{m}^3}$ or $\frac{\text{lb}}{\text{cm}^3}$ (or many other options). But these dimensions don't change the fact that matter density is always defined as $\frac{\text{mass of matter}}{\text{volume of matter}}$. Alternatively, we could have defined matter density to be $\frac{\text{mass of matter}}{5\times(\text{volume of matter})}$. This would have been just as useful and would contain the same information as the more standard definition, but it would mean that we would need to carry around with us all these $5$s in our formulas. It is much more natural to just use $1$s instead of $5$s in our definitions. There is no good reason to have a $5$ or any other number. (NOTE: mathematically, this alternative definition could give numerical quantities for matter density which are identical to the standard definition if we use other dimensions, but for the sake of this explanation you can see this as just a mathematical curiosity, or accident).
With angles, there actually are good reason to have multiple definitions. The basic reason for this is that there is a very natural and "special" angle that is very useful - the angle of a full rotation around a circle. (In contrast, there is no natural "special" matter density, besides the matter density of vacuum...). Thus, the first good definition of an angle will involve only $1$s: $\text{angle}=\frac{\text{circle arc length}}{\text{circle radius length}}$. This definition is good because then we don't need to carry around with us any extra annoying factors when we use functions such as $\sin$ (unless we redefine these functions accordingly, but this will lead to an endless chain of carrying around annoying numbers in other functions). The drawback of this definition is that the special angle, that of a full rotation around a circle, turns out to be an ugly irrational number with a never-terminating decimal expansion: $6.28318530718...$. The second good definition solves this problem by defining the angle (approximately) as $\text{angle}=\frac{\text{circle arc length}}{\text{circle radius length}}\times{57.29577951308}$. This makes the special angle be $360$, which is very nice because it is an integer, and also some other important angles turn out to be integers (the straight angle, the right angle). But on the other hand, this definition is very unnatural and incompatible with our definitions of other functions (such as $\sin$). (this answer demonstrates this incompatibility)
