Solution:
Clearly the function f(x)=2 for all x∈R+ satisfies the given functional equation. We will show that this is the only solution.
Lemma 1: For all x∈R+ we have f(x)≥1.
To prove this, suppose f(x)<1 for some suitable x and set y=1−f(x)x. Then x>0 and it follows that y=x+yf(x). From (I) we obtain f(x)f(x+yf(x))=2f(x+yf(x)) and since f(x+yf(x))>0 it follows that f(x)=2, contradiction!
Lemma 2: For all x∈R+ we have f(x)≥2.
To prove this we set x=y in (I) and obtain (II): f2(x)=2f(x+xf(x)). Let f(x1)<2 for some suitable x1. Then f(x1+x1f(x1))=2f2(x1)<f(x1). With xk+1=xk+xkf(xk) for k=1,2,… we obtain a monotonically decreasing sequence (f(x1)=a;2a2;23a4;…;22t−1a2t,…) of function values. For t>2−2log2a1 the values of this sequence are smaller than 1, contradiction!
Lemma 3: f is monotonically increasing.
To prove this, assume there exist s,ε>0 with f(s)>f(s+ε). Substituting x=s and y=f(s)ε into (I) gives f(s)f(f(s)ε)=2f(s+ε), from which it follows that f(f(s)ε)<2, contradiction!
Lemma 4: If there exists a z∈R+ with f(z)>2, then f(x)>2 holds for all x∈R+.
Again we substitute x=z and y=f(z)ε into (I) and have f(z)f(f(z)ε)=2f(z+ε), from which it now follows with Lemma 2 that: f(z)≤f(z+ε) for all ε>0. Hence there exists a z0≥0 with f(z)>2 for all z>z0. Suppose that z0>0. Then with x=y=z0−ε>0 it follows from (I) that f(x)f(y)=4, and since x+yf(x)=(z0−ε)(1+f(z0−ε))=3(z0−ε), for sufficiently small ε we have 3(z0−ε)>z0 and therefore 2f(x+yf(x))>4, contradiction!
Lemma 5: If f(x)>2 for all x∈R+, then f is injective.
Suppose there existed s,ε>0 with f(s)=f(s+ε). We substitute x=s and y=f(s)ε into (I) and have f(s)f(f(s)ε)=2f(s+ε), from which it now follows that f(s)<f(s+ε), contradiction!
Main proof: Because of the symmetry of the left-hand side of (I), we also have x+yf(x)=y+xf(y). For y=1 it follows that f(x)=(f(1)−1)x+1=mx+1. However, by substitution it is easily shown that no linear function can be a solution of (I).