Pads and circles (of suitable width) are both circular graphics features.
They don't make any difference in the Gerbers, or the PCB fab*. None at all.
*With suitable pathological exceptions, like building a shape out of a gazillion thin or small shapes that get optimized out by the fab. I've had that happen before, on bitmaps.
So, assuming thick, proper, intended shapes here.
So what's the point? Why have either, anyway?
It's all about the EDA data, and the process.
If you're taking more time constructing copper shapes out of inconvenient entities, that's your wasted time.
If you're taking more time setting the design rules to allow for all the exceptions to the entity types used, that's your wasted time.
If your use of primitives has resulted in a confusing mess on the testpoint output, that's your PCB fab's and test house's wasted time.
If your customer requests the files (or a compatible export format), and finds they're behaving goofy because of weird shapes or buggy export/import, that's their wasted time.
So, for a basic fab -- no, it won't matter. For a full production process, it can matter.
(A lot of these can be addressed very easily, like in Altium, for any "IsPad" rule, use "AND OnCopper" with it. Or for test data, place a few pads on random layers and export some IPC and ODB++ files, and see if they show up or not. I've never tried but I wouldn't be surprised if only copper pads are enumerated by Altium.)
Me, I only use pads for electrical connections, and fiducials (which are, in a sense, a visual connection, that the fab or assy needs to know, so should be exported with the test data that they will also need). This makes sense to me, and avoids the bother of qualifying "IsPad" anywhere.
Tim