I'm a month new to this, and my first model I made a Rubik cube. When I made an edge piece, I made it from 3 separate objects and joined them together to make one piece. It worked for what I wanted in the end but if in the future I had joined the whole Rubik cube together for another blend file so all the pieces would just be once whole object and if I wanted to scramble the cube some more I would separate it by loose pieces. When I separated it, then all 12 edge pieces would also split up into 3 pieces separately also. So, as you can see in the image, I have selected an extruded circle. I have to remake the cube and I have already made 5 magnets (the extruded circles) so I'm wondering if I can just make one and duplicate it and permanently join it to the objects I make, so they won't ever separate even if I tried to separate by loose parts in the future.
You don't need so many polygons if you can use a Subdivision Surface modifier, in that case you can create circles with only 8 vertices. Also you don't need to subdivide your flat surfaces so much, example:
If the circle is on a quarter of the total face (you can even delete some edges):
From your topology:
Duplicating them after a proper joining will work. What I mean by a proper joining is that you have vertices between parts that have lined up at the same location and that you have merged those vertices do there are no duplicates. ["m" merge by distance] Without merging like that forever will you be able to separate them by pieces. Now if you want to be able to separate parts in the future, I would use different materials in name, even if alike in every other way. That is a good way to have a way to break models apart quickly and easily.