Хмм... "у меня всё работает" (по крайней мере, соответствующие :cadd* , где * — file, buffer, expr).
А по поводу удаления — да, в самом деле нет способа, вот так устроен quickfix list.
Поэтому если надо — придётся писать workaround (с помощью setqflist(), например).