Is there any generally accepted or even speculative a priori reason why the orbital-angular-momentum quantum number is allowed to take on only integer values but the spin-angular-momentum quantum number may have half-integer values, or is this just empirical?
IIRC it has to do with the fact that the angular momentum quantum numbers correspond to the numbering of the spherical harmonics used to describe the atom (the angular part of the wave-function). Spherical harmonics only come with integer quantum numbers. Spin is not described by spherical harmonics.
That the orbital angular momentum comes only in integer representations of the (covering of the) rotation group, SU(2) is due to the fact that orbital angular momentum is given as [tex]\hat{\vec{L}}=\hat{\vec{x}} \times \hat{\vec{p}}.[/tex] If you apply [itex]\hat{L}_z[/itex] to, e.g., the position eigenvector [itex]|\vec{x}=(0,0,z) \rangle[/itex], you'll get 0 since a rotation around the z axis doesn't change this state. You can also easily verify this by direct application of the [itex]\hat{L}_z=\hat{x} \hat{p}_y-\hat{y} \hat{p}_x[/itex] to this state. Now, you can as well expand this state in orbital-angular-momentum eigenstates, and then the application of [itex]\hat{L}_z[/itex] leads to [tex]|\vec{x}=(0,0,z) \rangle=\sum_l \sum_{m=-l}^{l} C_{lm} |r=1,l,m \rangle \; \Rightarrow \; \hat{L}_z |\vec{x}=(0,0,z) \rangle = \sum_l \sum_{m=-l}^{l} m C_{lm} |r=|z|,l,m \rangle.[/tex] Thus, you must have [itex]C_{lm}=0[/itex] for all [itex]m \neq 0[/itex]. Thus only eigen vectors with [itex]m=0[/itex] contribute to the decomposition of [itex]|\vec{x}=(0,0,z) \rangle[/itex], but such eigen states can exist only for integer l. Now, you can make any position-eigen vector by applying a rotation to [itex]|\vec{x}=(0,0,z) \rangle[/itex]. Thus also all these vectors consist only of superpositions of integer-l orbital-angular-momentum eigen vectors. Since this is a complete set of eigen vectors, l can only take integer values.
Because orbital angular momentum describes single-valued functions and spin angular momentum describes spinors, which are double-valued.
It's also worth noting that the angular momentum of a quantum state can only ever change in integer units of hbar. This means that you have to be a little careful with statements like "spin angular momentum may have half-integer values", because that sounds like spin may be incremented in half-integer steps, which is not correct. In general, a given angular momentum quantum number can take value EITHER from the set of integers OR from the set of half-integers. As far as I know there is no way to convert between the two sets, at least not in non-relativistic QM.
I don't think the spin of particles change in general. Electrons always have 1/2 spin, never 3/2 even. For a composite system it is true, the spin angular momentum addition requires the total spin to be separated by integers. So 2 1/2 spin particles added together may have spin 1, 0, or -1. This is not quite the same as Angular Momentum where you can increase a single particle's l value simply by imparting to it some angular momentum.
Of course. You are right that the spins of individual quantum particles are fixed. However, at least for non-relativistic cases, the same algebra is used to describe both spin and angular momentum in quantum systems. Also, the multi-electron states are as much eigenfunctions of the total spin operator as the single electron state. Anyway, I was more referring to something like a total angular momentum quantum number for an atom: J=L + S. L will always be an integer, but S can be either an integer or half-integer value, so J can either be an integer OR a half-integer in the range |L-S| <= J <= L+S. For example, if L=1 and S=3/2, then J can take any value in the set {1/2,3/2,5/2}. If L=1 and S=1, then J can take any value from the set {0,1,2}. But you never get a J that can take values from a set like {0,1/2,1,3/2,2,5/2}. A similar condition holds for the z-component of angular momentum ... it can only ever increase or decrease in integer multiples of hbar (c.f. angular momentum raising and lower operators). For an electron, s_{z}=hbar/2 OR -hbar/2. For a p-orbital (l=1), l_{z}=hbar OR 0 OR -hbar.