Yes, from Scripture alone we cannot conclude that Mary had no other biological children. We cannot, however, conclude that she definitely had them. It is absurd to suggest so, but not directly contradictory to the scripture.
I agree that the reasons St. Jonh was chosed as Mary’s adoptive son and caretaker was primarily spiritual, in order to confer Mary’s motherhood to all disciples of Christ, and conversely, to elicit her protection of all Christians (see Apoc. 12). It would nevertheless be a violation of the Jewish laws to select a heir who is not a blood relative if a blood relative is available.
Regarding Mary’s reaction in Luke 1: the angel did not suggest the Mary will be pregnant before the marriage to Joseph was to be consummated. Therefore, the logical reaction would have been the same as when any American bride is told that her son will be president of the US one day: “Ah, thanks. I’ll be sure to name the baby Jesus then”. Instead her reaction was “How am I going to get a son in the first place?” It is a very unusual reaction.
As you said, it would be very odd for Christ to give Mary to John to take care of had He had other brothers. He would have been breaking Jewish law. In that day, “brothers” was used for cousins too. The term “firstborn” was a title of honor given to your first child, whether or not you had more. In Mt 13:55-56 four men are names as brothers of the Lord. However, at least two of them, James and Joseph, were the sons of Mary the wife of Cleophas. Also, when the family journeyed to the Temple and lost Jesus, no mention was made of other children or “brothers” of any kind.
There is more evidence that Christ was an only child than there is that He wasn’t .