Pattern fills in GIMP are made by repeating rectangular image (a kind of “stamp” if you will) horizontally and vertically. This tile is a raster image and its size is given in pixels e.g. 100x100 px. If a layer you want to fill-in with pattern have dimensions, say, 600x400 px, then it will accomodate 6 * 4 = 24 pattern “stamps”. Information about tile resolution (in dpi) is not stored.
Now let's take A4 image, in “portrait” proportions, in both 72 dpi (or rather ppi) and 300 dpi resolution. In the former case A4 image will consist of 210 / 25.4 * 72 = 595 pixels horizontally and 297 / 25.4 * 72 = 842 pixels vertically. It means there will be about 6 pattern “atoms” across the image and about 8.5 along. In the latter case image will be of size about 2480x3508 pixels, so there will be circa 25 pattern tiles across per 35 along. That's why pattern “looks better/have bigger tiles” when it floods A4 image in 72 dpi resolution.
Right now little can be done to resolve this situation, apart from coding solution oneself/speaking to the GIMP dev community.
Workaround would be to make tiles of sizes matching your needs for specific image size/resolution tuple or making tiles bigger than you actually need them to be. Reasoning could be done something like: “I need this pattern to repeat about 6 times horizontally in my 3000x4000 px image, so I have to make my tile at least 500 px wide”. If, in turn, tiles will be bigger, then a space filled with them can always be scaled down afterwards.
BTW, I think you've touched quite interesting subject, worth of spending some time thinking about it. If you've got some time and want to help GIMP development process, I suggest you to contact the devs (GIMP webpage gives the information how to do that) and mention your problem. Don't expect it to be solved right away, but I'm sure it will be noticed and hopefully solved with one of the following versions.