Frameworks in official platforms are pretty much always sourced from the PlatformIO package repository, they are not pointers to external repos with some commit hash or tag. Though you can easily from the version name scheme which underlying version the package provides.
As shown in platform_packages, you can arbitrarily re-point the source for framework-arduinoespressif8266, e.g., to the current master branch.
The platform is not only about the used framework version, but all the logic regarding building and uploading (builder/main.py), platform options (platform.py), board definition (boards/). As a theoretical example, it may e.g. be that the main.py has a bug that prevents proper uploading, which may be fixed in the bleeding edge https://github.com/platformio/platform-espressif8266.git version, but in the latest stable espressif8266 version. And those two platform versions may well be pointing to the exact same (stable) framework version.
In general, I have not yet ever seen that a bleeding-edge platform version (as released by the PlatformIO developers) gets a bleeding-edge framework package version. It’s just about fixes to the build logic, board files, or previews to the next stable framework etc in the platform. For changing package versions to arbitrary ones, platform_packages is the way to go.