Merging of two increasing binary trees why do we exchange left and right subtree
Both leftist heaps and the skew heaps you consider here join two trees by "zipping" the trees along the rightmost path.  Then left and right children are swapped to keep the left leaning property. In leftist heaps this in done where necessary, where in skew heaps left and right are always swapped. Hence the code.  

You ask whether the skew heaps will never deteriorate into trees that have linear behaviour, instead of logarithmic. Well, this can happen. 


  One may ask whether amortization is really necessary in the analysis
  of skew heaps, or whether skew heaps are efficient in a worst-case
  sense. Indeed they are not: we can construct sequences of operations
  in which some operations take O(n) time. For example, suppose we
  insert $n, n + 1, n - 1, n + 2, n - 2, n + 3, \dots  , 1, 2n$ into an
  initially empty heap and then perform delete min. The tree resulting
  from the insertions has a right path of $n$ nodes, and the delete min
  takes $\Omega ( n)$ time. (See Fig. 3.)


Quoted from the original reference "self-adjusting heaps" by Sleator and Tarjan,  SIAM Journal on Computing, which is linked on the wiki-page for skew heaps.