Не думаю, что это так просто, как вы предлагаете. Это правда, что файловая система может выделить новый блок, сохранить в нем предварительно добавленные данные, изменить указатель файла так, чтобы он указывал на этот блок, а затем связать остальную часть файла из этого блока. Так же, как добавление узла в начало связанного списка, верно?
Но что происходит, когда (как, вероятно, имеет место) предварительно добавленные данные не заполняют назначенный блок. Я не думаю, что многие файловые системы будут иметь механизм для объединения частичных блоков, но даже если они это сделают, это приведет к огромной неэффективности. В итоге вы получите файл, состоящий в основном из пустых блоков, и вам придется прочитать и записать весь файл для его дефрагментации. Можно также выполнить операцию чтения и записи заранее, когда вы делаете предварительный запрос.