Your question does not specify the OS you are working with. My answer is for Debian 9.6 and for a network-connected Kyocera FS-1350DN which is specified to handle “PDF Direct print”. There should be no necessity for cups to tamper with PDF-files.
To find out, you have to enable cups-debugging. Unfortunately, cupsctl --debug-logging (as root) failed with the error message cupsctl: Forbidden. After setting LogLevel debug in the file /etc/cups/cupsd.conf and restarting cupsd, I sent a print job with lpr scale.pdf. The file contained line graphics from a CAD program (no grayscale) and printed with 100% scale.
The relevant lines (300 totally for the job) in /var/log/cups/error_log read:
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] Request file type is application/pdf.
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] 3 filters for job:
D [11/Dec/2018:17:50:02 +0100] [Job 319] pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
D [11/Dec/2018:17:50:02 +0100] [Job 319] pdftops (application/vnd.cups-pdf to application/vnd.cups-postscript, cost 100)
D [11/Dec/2018:17:50:02 +0100] [Job 319] - (application/vnd.cups-postscript to printer/fs1350, cost 0)
⋮
I [11/Dec/2018:17:50:02 +0100] [Job 319] Started filter /usr/lib/cups/filter/pdftopdf (PID 16570)
I [11/Dec/2018:17:50:02 +0100] [Job 319] Started filter /usr/lib/cups/filter/pdftops (PID 16571)
I [11/Dec/2018:17:50:02 +0100] [Job 319] Started backend /usr/lib/cups/backend/socket (PID 16572)
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] pdftops - copying to temp print file \"/tmp/040bb5c158ce7\"
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] PID 16570 (/usr/lib/cups/filter/pdftopdf) exited with no errors.
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] 319 h scale.pdf 1 \'finishings=3 job-uuid=urn:uuid:045216b6-e2e0-34ee-50af-36c3bdbdc04f job-originating-host-name=192.168.0.2 date-time-at-creation= date-time-at-processing= time-at-creation=1544547002 time-at-processing=1544547002 document-name-supplied=scale.pdf\'
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] Running command line for gs: gs -q -dNOPAUSE -dBATCH -dSAFER -dNOMEDIAATTRS -sDEVICE=ps2write -sOUTPUTFILE=%stdout -dLanguageLevel=3 -r1200 -dCompressPages=false -dCompressFonts=false -dNoT3CCITT -dNOINTERPOLATE -c \'save pop\' -f /tmp/040bb5c158ce7
D [11/Dec/2018:17:50:02 +0100] [Job 319] Started filter gs (PID 16577)
D [11/Dec/2018:17:50:02 +0100] [Job 319] Started post-processing (PID 16578)
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] Started filter pstops (PID 16579)
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] %!PS-Adobe-3.0
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%BoundingBox: 0 0 595 842
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%HiResBoundingBox: 0 0 595.00 842.00
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%Creator: GPL Ghostscript 920 (ps2write)
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%LanguageLevel: 2
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%CreationDate: D:20181211175002+01\'00\'
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%Pages: 1
D [11/Dec/2018:17:50:02 +0100] [Job 319] %%EndComments
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] PID 16577 (gs) exited with no errors.
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] PID 16578 (Post-processing) exited with no errors.
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] PID 16579 (pstops) exited with no errors.
⋮
D [11/Dec/2018:17:50:02 +0100] [Job 319] PID 16571 (/usr/lib/cups/filter/pdftops) exited with no errors.
⋮
The line containing - (application/vnd.cups-postscript to printer/fs1350, cost 0) tells you that cups is using the post-processor (aka printer driver) /etc/cups/ppd/fs1350.ppd. Another view of the same process can be obtained with the ps-command. An excerpt of the output of
while true ; do date +'%N'>> log; ps axSfu | fgrep -v grep | egrep '^lp[[:space:]]|/usr/sbin/cupsd' >> log ; done
which is
⋮
root 15796 0.1 0.1 171440 8536 ? Ssl 17:49 0:00 /usr/sbin/cupsd -l
lp 16571 0.0 0.0 77632 5728 ? S 17:50 0:00 \_ fs1350 319 h scale.pdf 1 finishings=3 number-up=1 job-uuid=urn:uuid:045216b6-e2e0-34ee-50af-36c3bdbdc04f job-originating-host-name=192.168.0.2 date-time-at-creation= date-time-at-processing= time-at-creation=1544547002 time-at-processing=1544547002 document-name-supplied=scale.pdf
lp 16577 0.0 0.2 129760 20836 ? R 17:50 0:00 | \_ gs -q -dNOPAUSE -dBATCH -dSAFER -dNOMEDIAATTRS -sDEVICE=ps2write -sOUTPUTFILE=%stdout -dLanguageLevel=3 -r1200 -dCompressPages=false -dCompressFonts=false -dNoT3CCITT -dNOINTERPOLATE -c save pop -f /tmp/040bb5c158ce7
lp 16578 0.0 0.0 77632 924 ? S 17:50 0:00 | \_ fs1350 319 h scale.pdf 1 finishings=3 number-up=1 job-uuid=urn:uuid:045216b6-e2e0-34ee-50af-36c3bdbdc04f job-originating-host-name=192.168.0.2 date-time-at-creation= date-time-at-processing= time-at-creation=1544547002 time-at-processing=1544547002 document-name-supplied=scale.pdf
lp 16579 0.0 0.0 75424 5288 ? S 17:50 0:00 | \_ fs1350 319 h scale.pdf 1 finishings=3 job-uuid=urn:uuid:045216b6-e2e0-34ee-50af-36c3bdbdc04f job-originating-host-name=192.168.0.2 date-time-at-creation= date-time-at-processing= time-at-creation=1544547002 time-at-processing=1544547002 document-name-supplied=scale.pdf
lp 16572 0.0 0.0 79792 5900 ? S 17:50 0:00 \_ socket://fs1350.xxxx.xxxx.xxx 319 h scale.pdf 1 finishings=3 number-up=1 job-uuid=urn:uuid:045216b6-e2e0-34ee-50af-36c3bdbdc04f job-originating-host-name=192.168.0.2 date-time-at-creation= date-time-at-processing= time-at-creation=1544547002 time-at-processing=1544547002 document-name-supplied=scale.pdf
⋮
tells us that cups invokes the prefilter (pdftops, PID 16571, named fs1350 here) and the backend (PID 16572, named socket://fs1350.xxxx.xxxx.xxx here). The prefilter invokes gs. Because the whole processing takes less than 0.2 s it makes sense to collect the output into a file. The date +'%N' is only there to get an idea of the timing.
The unwanted scaling by evince (that I wrote about in my comment) was because evince→Print→Print Setup→Scale→100% was silently overwritten by evince→Print→Page Handling→Fit to Printable Area. So check your print clients with great care.
Alas, this is not the whole story. To bypass cups and use the “PDF Direct print” feature of the printer, I sent the file directly: nc fs1350.xxxx.xxxx.xxx 9100 < scale.pdf. After more than 10 minutes of processing time the printer shipped out the paper.

Raw print using netcat, the digits reflect the size in mm.

Printout using lpr→cups

Bitmap image of the file (1200 dpi)
Regardless of the printer setting “Override A4/LT” the scaling of the raw print is 97.7% whereas the scaling of the lpr→cups print is okay. There is a small dot gain for the raw print whereas the lpr→cups print comes a bit meager.
Shrinking the page size of the drawing before raw printing enlarged the scale.