This is a really cool math problem and it turns out you're partially right. All the numbers from 000 to 999 actually can be generated with your friend's method, but as you intuited, they will not be generated uniformly if you consider all 1 million possible ways of choosing the first seed and second seed values. Here is the distribution I found when I ran a script to enumerate the outputs
400 numbers: 0.04% chance of occurring each
280 numbers: 0.08% chance of occurring each
116 numbers: 0.12% chance of occurring each
40 numbers: 0.16% chance of occurring each
4 numbers: 0.17% chance of occurring each
100 numbers: 0.2% chance of occurring each
28 numbers: 0.24% chance of occurring each
2 numbers: 0.34% chance of occurring each
4 numbers: 0.36% chance of occurring each
20 numbers: 0.4% chance of occurring each
1 number: 0.51% chance of occurring
4 numbers: 0.6% chance of occurring each
1 number: 0.85% chance of occurring
Total: 1000 numbers
The script I wrote considers the seed pair (A, B) as distinct from (B, A) even though the work out to the same output.
The four hundred numbers that occur at a rate of 0.04% each in the output space are all odd, so this method greatly favors the production of even numbers, i.e., numbers with the last digit 0, 2, 4, 6, or 8. Going back to your number 349, you can generated it many ways, for example starting with initial values 521 and 067. When you multiply them and multiply the product by 7 you get 244349.
Another interesting thing I found is that the seed value 143 and any other three digit number XYZ always gives you back XYZ when you apply the method. Ex: 705*143*7 = 705705. It's not too difficult to see why. 143*7 = 1001, and when you multiply any three digit number by 1001, the last three digits will be the same you started with.
I can PM you the script if you want. Thanks for the brain food, and good luck to your friend!