What's the point of "prune unreachable objects"?

I have some gitlab.com hosted repos where I use LFS for large assets. My intended workflow is to work on feature branches, potentially with many revisions of large assets, and once a feature is done, squash it into one commit, rebase it onto the main branch and delete the feature branch.
I’ve done a few tests of this workflow and found that after deleting the feature branch, “prune unreachable objects” does not recover any space (I’m aware of the 30 min grace period).
Looking further into it, I’ve found mentions of gitlab creating keep-around refs for “commit timeline”-type website features that would prevent cleanup as I expected.
If there’s going to be keep-around refs for everything, what does the prune button actually prune? Is there a way to get my intended workflow to work?
(I chose gitlab over github, bitbucket etc. because of the cleanup feature)

It looks like keep-around refs were generated because of pipelines and not deleted after the pipelines were deleted. On another repo with no pipelines, pruning works as I expected. Shouldn’t keep-around refs be pruned if the corresponding pipeline is deleted?