Do we need XLM for every transaction as a bridge currency or only where asset pairs are not established? (I'm not talking about the transaction fees in XLM which are always due)
No, Stellar offers path-payment.
This means that an user can trade ASSET1 directly to ASSET2 in 2 case:
- There is a specific trading pair ASSET1/ASSET2 in Stellar Decentralized Exchange
- There is a "trading path" available for the 2 asset specified (ASSET1/ASSET_X -> ASSET_X/ASSET2)
You can look to official documentation and found an example that directly exchange token EUR for token USD
Stellar Horizon API offer a service to look for available paths
The other two answers are totally correct, but I wanted to add some color.
Technically, you can create a path payment in Stellar to trade assets using any bridge, but generally you need to use a bridge asset that has some kind of value. So, just issuing an asset randomly and "putting it out there" would technically function as a bridge, but what does that asset represent? Does it have value for people other than as bridge? Does it power another network or function?
XLM, as an example, is a good bridge asset because 1) it has a market against XBT and some other fiat currencies; in other words, people want to buy/sell XLM in exchange for XBT or fiat, hence a "market", and 2) it has utility by way of powering Stellar network transactions. This utility drives additional demand for the asset, giving it "value." Actors must purchase XLM if they want to hold a Stellar account and/or transact on the network.
MOBI would be another interesting example of an asset listed on Stellar, with utility and value.
You can trade any asset for another when a matching offer exists.
It is also possible to do cross-asset payments with up to 6 different hops.
This process of finding the best path of a payment is called pathfinding. Pathfinding involves looking at the current orderbooks and finding which series of conversions gives you the best rate. It is handled outside of Stellar Core by something like Horizon.
XLM is used as a bridge only when there is no mutually trusted asset issuer on the network between the two parties of exchange. On Stellar network, the user must trust the asset issuer in order to hold their asset. If two parties want to trade but do not have a mutually trusted issuer, then they will not be able to hold each other's assets. If I travel to far away lands that do not trust my Wells Fargo dollars, to buy anything I can use my dollars to purchase XLM from somebody who does accept my dollars, and then trade the XLM for the good or service I want to purchase. The key here is it is only necessary/reasonable without trust.