Ideally, the palette could contain up to 256 levels of alpha (where each color could be assigned an alpha value). Obviously if all 256 levels were present in the palette, a very limited set of color choices would exist since each alpha is paird with a color in the palette.
Your suggestion would work in the specific case of 16 colors with 8 alpha values. However, I don’t think that’s a typical use case. For example, a very simple use case could be anti-aliased lines. A sprite with 15 colors could have a solid black outline. Color 16 could also be made black but have alpha = 0.5. Then it could be added to the outline to make it appear anti-aliased to better blend with the background. In that example, the artist having control over what the alpha value is for each palette entry is critical. Another case could be where 8 different sprites are each 16-colors but share the same 256 color palette. Using the method you described above would require a different palette per sprite or a different layer (which would be another palette).
While it would be possible to also create an alpha gradient using this suggestion, that’s not the primary use case.
Another use case example would be to create a glowing particle with bloom. Instead of implementing the bloom itself as a post-processing filter, it could be faked by blending a “glow” with decreasing alpha. The artist may choose to have the alpha decrease exponentially or logarithmically instead of linearly. In this case a gradient wouldn’t work. Depending on how complexity of the glowing object, it may be possible to include the center colors and the bloom fade in just 16 palette entries.
I think that your suggestion would work for a game running in an engine like Unity, but it wouldn’t work on hardware with limited CGRAM. The system has a limited but somewhat large CGRAM cache (around 4096 RGBA8888 colors). Not every layer has access to every color. Having multiple alpha levels of the same palette would greatly reduce the number of colors that could be used by the system. The 8-bit alpha value is treated like just another color channel until it reaches the blending stage. At that point the blending can perform color math by factoring alpha (i.e. what photoshop / gimp can accomplish). In normal blending mode, this does “result = A*layer + (1-A)*buffer”. A shift is done thus A=0xFF is treated as 1.0). A 1-bit alpha can still be accomplished by setting the alpha channel to 0x00 or 0xFF for fully solid or fully transparent. I’m not sure if that answers your question though.