The IP source routing options are largely deprecated for security reasons. When supported they allow the source host to define the routing path (in part for LSR), instead of each hop deciding independently by the packet's destination address.
Better alternatives to source routing are policy-based routing, tunneling, or even NAT, depending on the scenario. (You could argue that source routing is a kind of tunneling, not defined by tunnel endpoints but by the source host.)
There is no relation to the stateless/connectionless routing model in TCP/IP. Source routing options are not defined for an entire flow in advance but in each packet.
Re IPv6 flow label:
You should open a new question before changing the focus of a question. This site tries to compile a large number of questions and answers for reference. The more concise and focused these are the better.
The flow label as per RFC 3697:
- IPv6 Flow Label Specification
The 20-bit Flow Label field in the IPv6 header [IPv6] is used by a
source to label packets of a flow. A Flow Label of zero is used to
indicate packets not part of any flow. Packet classifiers use the
triplet of Flow Label, Source Address, and Destination Address fields
to identify which flow a particular packet belongs to. Packets are
processed in a flow-specific manner by the nodes that have been set
up with flow-specific state. The nature of the specific treatment
and the methods for the flow state establishment are out of scope for
The Flow Label value set by the source MUST be delivered unchanged
to the destination node(s).
So yes, that's somewhat of a break in the stateless model. It's an improvement to the commonly used assumption of a flow when the 5-tuple (source/destination address/L4port, L4 protocol) matches - which is already a stateful concept.
However, it's not at all a departure from stateless routing. Note that the RFC merely defines what a flow label is and what not to do with it - a router/gateway/firewall isn't obliged to any special (stateful) handling. It can just as well remain stateless.
You should see the flow label as a means for simplification and standardization. It doesn't change normal practice and doesn't change the statelessness of IPv6. Actually, it's a generalized reference for the used transport-layer protocol which may absolutely be stateful.