Sites are able to install Guzzle 7 due to a widening of Drupal core's composer constraints. This allows for more complete PHP 8.1 support. Contributed modules should continue to provide Guzzle 6 support since both the drupal/core-recommended package and core tarballs continue to provide Guzzle 6.
Sites using drupal/core-recommended
Site owners who are using drupal/core-recommended and wish to use Guzzle 7 will need to change their site to depend on drupal/core directly. Note that your Composer dependencies will no longer be locked to specific patch releases after this change, so you will need to take care to avoid accidentally updating dependencies before your site is ready.
You should test thoroughly before deploying an update to Guzzle 7, as some contributed and custom projects may be incompatible with it.
Sites not using drupal/core-recommended
Site owners who do not use drupal/core-recommended should take care to ensure they do not accidentally update to Guzzle 7 when running composer updates. In the latest snapshot channel of Composer, it is possible to use:
composer update --with=guzzlehttp/guzzle:^6 -W
You can update to the snapshot channel by re-running composer self-update after updating to the current stable release (2.3.7). You can roll back to a stable version at any time by using composer self-update --rollback.
In current stable releases of Composer, a workaround is to temporarily add a top-level requirement on the exact version of Guzzle you which to install, e.g.:
composer require guzzlehttp/guzzle:6.5.6
composer update
...and then remove the specific guzzle requirement from the top-level composer.json for your project.