PIC16F1704 strange DAC output on DAC1OUT2 - it seems some other peripheral loads the pin down
As discussed in the comments, I suspected my PicKit2 not programming the part correctly, leaving Config Word 2's ZCDDIS bit not set to the correct value of '1' (ZCD controllable by the ZCDCON register), but left as '0' (ZCD always enabled). This matched what we saw on the 'scope.
After using a friend's computer and PicKit3 programmer we verified that the same chip, as programmed with PicKit3, does not exhibit the issue. 

Therefore it's an problem in my machine's toolchain, most likely the PicKit2 programmer, which doesn't support PIC16F1704 out of the box and I had to hack the device file to support it, so I most likely messed up that part.



Update

If anyone is curious, this is what I actually messed up when hacking up the device data file:



I was using the PICKit2 Device Data File Editor to add support for the PIC16F1704 device. The usual way to do that is to copy the parameters from a similar device and then change the expected device IDs and memory sizes. What I didn't pay attention then were the fields ConfigMasks - these have to be set to whatever bits in the config words are implemented (and '0's for bits that aren't). It seems that the part I copied my data from didn't have bit #7 of CONFIG2 implemented, so its respective bit #7 in ConfigMasks[1] was 0, so pk2cmd later on didn't try to program this bit to '1', even if it was specified as '1' in the HEX file. This meant that the ZCD was always enabled and wasn't controllable through the peripheral registers.

What you see on this screenshot are the correct values after a recent intervention. As you can see, ConfigMasks[1] = 0x3F83 - my bit #7 is '1' now.
With these changes, the PIC also programs successfully and works as expected even if programmed with PicKit2.