PDF files generated by Ghostscript contain timestamps and ids.
UUIDs in rdf:about field is generated solely depending on current time. But the value of /ID varies even when faketime is used according to some preliminary tests.
This is in fact a ghostscript bug: their ID calculation uses their times(2) wrapper instead of their gettimeofday(2) wrapper to get the current time. In the function pdf_compute_fileID, replace gp_get_usertime with gp_get_realtime. With that change I get reproducible builds using faketime.