There is a bug in lib/jekyll/commands/build.rb, see this line:
dest = Pathname.new(destination).relative_path_from(Pathname.new(source)).to_s
Method relative_path_from is valid in the following cases: If self is absolute, the argument must be absolute too. If self is relative, the argument must be relative too.
The pathname source is absolute. You use absolute destination here, but then it is rewritten from _config.yml. As a result, destination is relative as a rule, and relative_path_from raises ArgumentError. In turn, variable ignored becomes nil, and all files in the destination inside the source are regenerated.
Should be fixed by #2459.
I can't check if the issue fixed or not, because I faced with #2516.