It is possible that several function symbols have the same value, for example as a result of linker optimizations such as collapsing of identical functions into one function body. See PR43245.
This patch fixes readelf/readobj in the following way:
for each stack size entry, dump all functions (not just the first one) with the specified address.
(Note: as part of collapsing the function bodies, the linker has also collapsed the stack size entries).
I think combining the different cases into a single test run is risking confusion. I'd prefer it if each issue were a separate test (i.e. have a basic single-entry only case, a NOBITS case, a multiple entries for the same address case, and one where the sizes conflict).