It's been almost three years since original post, but I hope this still might be useful for future readers
You have posted several questions, so let's go through one at a time.
1) The cost of regulators.
Might be that prices now (2015) and then (2012) are not comparable - currently on digikey LT3080 is under $4.5, and LT3083 under $8.5, so quite less then stated $50 in one of configurations mentioned below
2) Input voltage +/- ripple vs. output voltage
No doubts here - your projected output voltage HAS to be less then MINIMUM value of the input voltage (Vin-Vripple) but also don't forget to subtract voltage drop on all components in line between the Vin and Vout (in your case those are required dropout voltages on two LDO regulators (in your case with Vcntrl and IN pins connected, it's up to 1.6V; if you "separate" Vcntrl and IN pins, that can go down to up to 0.5V!), and also voltage drops on two current sense resistors). In your case that would be:
18.5V (Vin) - 0.3V (Vripple) - 1.6V (first regulator) - 1V (current sense) - 1.6V (second regulator) - 0.25V (the last current sense) => Vout should be up to 13.75V. You have it set to 12V, so that should be OK
3) "Magic" behind the current limit
LT3080/3083 internally assures that voltage supplied to the pin SET is identical to the voltage on the pin OUT (it's called error amplifier, if OUT pin goes higher, that causes internal circuits to "increase resistance" of the regulating transistor, and in turn the OUT pin's voltage goes down. In the case of the Voltage Regulation circuit, potential (voltage) of the SET pin is defined (for LT3083) as 50uA (provided by the IC) times resistor you call Vset. Note that one side of that resistor is connected to the GND!
In the case of the current limiter, that "same" resistor (now you call it Iset) is connected "after" the current sense resistor (Rlimit). At this point in diagram, potential is OUT-Rlimit*Ilimit. To have OUT and SET at the same potential, voltage on Iset has to be 50uA*Iset, or simply said Rlimit*Ilimit = 50uA*Iset => I=50uA*Iset/Rlimit (note: Iset is actually resistor, but that's how it's marked in your diagram
).
Unless it reaches Ilimit, voltage drop on Rlimit is lower then votage drop on Iset resistor, so error amplifier sees that OUT pin is not "high" enough, and internal circuitry opens the transistor that regulates the output to the max, effectively not impacting the next stage. If the current gets to Ilimit value and attempts to go higher, error amplifier will see that OUT has higher potential then SET, and will take actions to "reduce" the Vout as much as needed to get current under control. That will in turn lower the supply voltage of the next block (voltage Regulator) and in turn lower the output to your load
4) Getting 0V output
If you check the data sheet, you will see that to function, this LDO regulator requires certain minimal output current (1mA). When output is close to zero, output current goes under that value. You either need to accept that limit, or to have a bit more complicated schematic that ensures that requirement to be met at all times (for example, you will need a simple constant current circuit drawing at least 1mA out of the OUT pin, and for that you will need additional negative supply rail)
5) Occasional oscillations
Two major reasons are:
a) incorrect selection of capacitors - read the "Stability and Output Capacitance" section in the Data Sheet! Especially check where it mentions "low ESR requirement". (You need high quality electrolytic or tantalum/ceramic).
b) incorrect "wiring" (or PCB design). See design recommendations in the Data Sheet. The main issue is that LT308x uses fairly small current for the SAT pin (10uA or 50uA) and any stray capacitance and noise can result in instability (oscillations).
You also might want to add additional capacitors between IN and OUT pins of the current limit block (see Data Sheet where it describes current limiter).