Apparently, you missed my question about this. I contended that Mary said what she did, not because she had already taken some unknown Jewish vow of perpetual virginity - even though she was already engaged to be married - but the angel's pronouncement had an immediacy to it and she knew that she was still in the betrothal period (it was usually a year long). I believe she was quite aware of how babies are made but, being a faithful fiancee, she questioned how she could become pregnant before she and Joseph were consummated in their marriage.
BTW...I learned that the reason for the year-long betrothal period was just for such a reason as Mary found herself in soon after the angelic visitation. The custom was to ensure that the wife was not already pregnant by another man in which case the groom would be tricked into raising another man's child. Joseph, it is said, was a just man and he did not want to subject Mary to open shame when it became obvious she was pregnant and they had not yet been together. The penalty for that was stoning. He intended to "put her away" or hide her, I guess, and he planned to do just that until the angel came to him in a dream and told him God's plan. The rest is history, according to Scripture.
Interesting theory. The angel says (I quote in full)
"[30] ...Fear not, Mary, for thou hast found grace with God. [31] Behold thou shalt conceive in thy womb, and shalt bring forth a son; and thou shalt call his name Jesus. [32] He shall be great, and shall be called the Son of the most High; and the Lord God shall give unto him the throne of David his father; and he shall reign in the house of Jacob for ever. [33] And of his kingdom there shall be no end.".
Acciording to you, Mary listens to that and thinks, "yikes, premarital sex!"
Seriously? Where is that "immediacy", by the way?