Numbers? (input sizes, cpu vs. gpu, …)
For me and a decently sized array, it doesn’t matter:
x = torch.randn(1000,1000)
%timeit torch.nn.functional.relu(x[:, :], inplace=True)
71.8 µs ± 59.1 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%timeit torch.nn.functional.relu(x, inplace=True)
69 µs ± 141 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

If relu is slowing down your network, you’re doing something wrong.
You can be a tiny bit faster than relu + cat if you clone + use inplace relu (which works with autograd). But TBH I’d stay in the functional world. Optimizing ReLU likely isn’t a huge win.