Timeline(RLMObject)にネストしたTimelineItems(RLMObject) の内、
作成日が12時間前より古いデータを一括削除するコードを書きましたが、
データベースファイル(default.realm)のサイズが小さくなりません。

default.realmのサイズは
・アプリインストール直後は数十KB
・アプリを1日(24時間)使用した後は240MB(一時間毎に10MBずつ均等に増加)
と仮定します。

RLMRealm deleteObjectで12時間前より古いデータを一括削除した場合、想定では
・一括削除後は60MB(12/24=50%)
となるはずですが、実際には100MB程度にしかなりません。

以下、削除するコードになります。

RLMRealm *realm = [RLMRealm defaultRealm];

// 全てのタイムラインを取得
RLMResult *timelines = [Timeline allObjects]    

// タイムラインを走査
for (Timeline *timeline in timelines) {

    // timelineにネストしたモデルの内、作成日が12時間前より古いデータを取得
    CGFloat hours = 12.0f;
    NSTimeInterval secs = hours * 60.0f * 60.0f;
    NSDate *priorDate = [NSDate dateWithTimeIntervalSinceNow:secs];
    RLMResults *timelineItems = [timeline.timelineItems objectsWhere:@"(create_date <= %@)", priorDate];

    [realm beginWriteTransaction];

    // ネストした複数の子データを一括削除
    for (TimelineItem *timelineItem in timelineItems) {

        // ローカルに保存したキャッシュデータ(画像等)やリレーションを削除するカスタムメソッド
        [timelineItem invalidate];

        // RLMObjectを削除
        [realm deleteObject:timelineItem];

        // 削除されているか確認
        NSLog(@"isInvalited: %@", @(timelineItem.isInvalidated)); // isInvalited: 1
    }

    [realm commitWriteTransaction];
}

上記コードのhoursを0とし、全件削除した場合は数十KBに戻るはずですが、実際にはそうはなりませんでした。

default.realmは破棄したデータが残る仕様になっているのでしょうか?

実際のプロジェクトではより複雑な処理を行っていたり、
モデル定義も上記モデル以外にも複数紐付いている為、
リレーション周りが問題の可能性もありますが、
Realm Browserで確認する限りTimelineItemのインスタンスは正常に削除されております。

実機、シミュレーター共に同様の現象が発生しております。

上記現象に関してご回答頂ければ幸いです。
よろしくお願い致します。