For your first point, I have just answered this same question here: https://stackoverflow.com/a/29463230/209288
Pull should do a fetch and a merge, which itself is a commit. Hence those changes by other people are applied to the files, staged, and then committed automatically. If something goes wrong with this automatic merge-commit (e.g. a conflict) then you will see the other people's changes left staged while you resolve the conflict.
For the second point - I have also seen "spurious" conflicts too and after many years have not come to a conclusion about some of them!
Sometimes it's whitespace: e.g. tabs/spaces or newlines being converted. Most Git GUIs have a "hide whitespace" option in the diff pane and so do the merge tools you use for conflict resolution. So sometimes what Git thinks is a conflict is handled more gracefully by the external merge tool, because you have relaxed the whitespace rules in its configuration. Sometimes what looks like no-change is a whitespace change when you turn off the ignore-whitespace options.
The only other conclusion I've come to is because the external merge tools could be better at merging than Git itself - or at least follow a slightly different algorithm. Therefore when git throws a conflict to an external tool, it might be able to solve it and shows you no conflict!
"they don't have any differences other than Git have copy and pasted the contents of the file again above the file."
I'm not sure I quite understand, if you are saying the file contents are duplicated inside itself, then you are probably seeing the conflict diff format. This would replicate the entire file if the line-endings differed.
If you're seeing this:
<<<<<<< HEAD
...entire file contents...
=======
...entire file contents...
>>>>>>> otherbranch
Then I'd almost guarantee your line endings have changed.