При передаче fileStream в качестве параметра конструктору StreamContent он становится владельцем.Т.е. при удалении filestreamContent он также удаляет fileStream.При добавлении filestreamContent к контенту он также становится владельцем, т. Е. При утилизации контента он проходит по всем частям, а затем удаляет их.
И HttpClient.PostAsync в конце концов вызовет приватную функцию HttpClient.DisposeRequestContent, которая, в свою очередь, удаляет содержимое, которое закрывает и удаляет все связанные потоки.Это сделано специально.
Вы просто видите конечный результат, и, насколько я могу судить, вы не получаете никаких ошибок или исключений, кроме случаев, когда пытаетесь получить доступ к членам теперь расположенных объектов вотладчик.