For a temperature compensated, high precision voltage source, the LM317 is not the way to go. It is a very basic voltage regulator, of ancient design, about as viable to electronic designers today as the LM741. They serve at best as teaching tools, preferably to teach what not to use.
Further, any variable regulator that depends on external components (e.g. the potentiometer in the question's schematic) for set-point determination will be at the mercy of all temperature effects on all those external components, and all connections to them - even poor solder joints can be a problem. This is why for temperature-sensitive designs, fixed voltage regulators are a preferred option.
There are many modern parts with considerably better temperature compensation than the LM317. The Micrel MIC5219 regulator, for instance, has a temperature coefficient of 40 ppm/oC, compared to the 200 ppm/oC of the LM317.
For something that is more easily available in retail in India, consider the Texas Instruments µA723 series of voltage regulators (30 to 100 ppm/oC). It is not a great part, but way better than the LM317. These can occasionally be found in the electronics components markets, selling for less than a third of the nearest Digikey price, though the shopkeepers will typically have no clue what they are selling.
A precision voltage regulator with temperature compensation will typically require more support components than a basic regulator such as the ones in the question. For instance, from the above datasheet:
This part, and other similar parts, can also incorporate current limiting, if that is the original purpose of the current source in the question.
If, on the other hand, the compensated current source is an independent requirement, read on...
As with voltage regulation, current regulation too requires fixed set-point parts for the best stability: Variable current designs will necessarily suffer from temperature effects on all set-point setting components.
One family of current regulators I have used with excellent temperature compensation are the SuperTex CLxx series of regulators: The SuperTex CL2 is rock solid for 20 mA temperature-stable current regulation. Similarly, on the SuperTex product selection page, they offer parts for various other current settings and supply voltages.
These current regulators are very easy to use 2-terminal parts, no external support components needed:
To gain a bit of insight into the challenges faced in temperature compensated current regulation, please see this paper: "A Precision Low-TC Wide-Range CMOS Current Reference".
Yes, it's very easy to construct a constant-power supply.
Take, for example, an ordinary switchmode boost converter.
simulate this circuit – Schematic created using CircuitLab
Let's assume it is operating in discontinuous mode and does not have synchronous rectification (i.e., just a diode). If the switch is operated with a fixed duty cycle (i.e., no feedback), it puts a fixed amount of energy into the inductor each time it is closed. The amount of energy depends only on the input voltage, the inductance and the on-time. That energy gets dumped into the load when the switch opens.
Constant energy per cycle × constant number of cycles per second = constant energy per second = constant power.
Regardless of the resistance of the load, the voltage and current levels will adjust themselves to match that value of power.
In terms of practical limits, if the output of this supply is shorted, then the current will be limited by the resistance of the internal components (the inductor and diode). If the output is left open, the voltage will be limited by the distributed capacitance of the components — the inductor will "ring" with some high voltage at the self-resonant frequency.
Best Answer
What you're describing is a 4-20 mA Current Loop. The implementation of current loops is very vast, however, I would go with an approach similar to this one. The input range is 0-5v for the example I gave, but you could quite easily scale your input down to 5v max by using a voltage divider. The circuit is rather robust and relatively easy to implement and looks something like this: