Here is an example of a brick wall and tiled floor using the hybrid approach. They both use the same 6k detail texture. Shown shadeless:
But now I use procedural brick texture and some other generators to break it up. Since brick can output random color per stone, I can use this to look up different parts of the detail texture, color and darken it, apply a hue change, have different scale and rotation - basically no limits. All shadeless, wall is shown without the grout, tiled floor is shown with the grout:
With extra per tile control of the grout/border/falloff, in combination with per tile/brick randomly noised up coordinate, you can get a pretty varied result. The wall is using displacement for maximum effect. The floor is using random color-> normal for inaccurate lay effect. Here a render of the result:
Are there texture repeats in the detail texture? Yes. But they are very hard to spot. This was just an experiment, but I’ve seen way better brick textures than these. Still, the setup is quite complex - possibly to the point of being practically unusable, even if I don’t use procedural textures as a “texture generator”.