The people saying "don't do it" are absolutely correct. I have tested this extensively. The issue is that your all of your distro's packages in your repositories all depend on the current libc6 you have.
Why it Doesn't Work
The difference between versions is great because of the ABI signatures and the symbol offsets/lookups. First off, the function names may look the same, but their real name may have a decorator in which case they wouldn't be. Secondly, libraries have tokens for verification (in this case the GLIBC version). If the tokens don't match, the program wont use it. You can try to force it, but then you will run into symbol lookup errors. Such a thing is a brick maker(tm).
During my testing, I would end up with one of the following:
- A system that is half-broken (boots to emergency, then have to coax it into startup using ninja shell techniques)
- A system that is fully-broken (the dreaded grub emergency prompt, no way in unless you reinstall or patch it from a live disc)
- A very unstable system that inexplicably crashes or kernel taints easily
- An awful combination of the above
The Right Solution
If your program needs a certain c6, you should install it on a system with the correct version THEN make an AppImage (or other similar package) of it, so you can run it without issue. AppImage will run your program in a sandbox, which is one advantage of it. There is also snap and flatpak.
The only other alternatives are using virtualbox+another version of Linux with your c6 target on it, or setting it up on another machine and using ssh to run it instead. These are a pain though and only worth it for larger programs.