I was basing that off the statement in your original post that you are generating normals from texture paint, and your first set of screenshots are texture based.
If you are generating details via shader math, then you can generate perfect normals mathematically using the derivative of the function that generated the details in the first place.
Not sure why you’d get moiré in that specific case though.