I've seen Combine leak memory on far simpler cases then this, to the point that it's pretty clear the framework itself is doing bad things.
See Easy to reproduce Combine crash involving Future and concurrency (+ memory leak) - #19 by davidbaraff which references a still open (I think) memory leak. There's a github project in this thread that easily reproduces a memory leak, in case this is of any help to you. I should probably try it out since things have changed since I posted it and see if it is still an issue.