sum(rand(5)) is equivalent to sum(_ -> rand(), 1:5) so your code is equivalent to the following code which uses no arrays:
sumrand(n) = sum(_ -> rand(), 1:n)
acl = sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand())
which is allocation-free:
julia> using BenchmarkTools
julia> @btime acl = sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand());
68.299 ns (0 allocations: 0 bytes)
You could even do
acl = sum(_ -> sumrand(5) * (rand() - rand()), 1:5)
This will show allocations, but only because it is in global scope; in a function it will be allocation-free a well:
julia> f(n, m) = sum(_ -> sumrand(m) * (rand() - rand()), 1:n)
f (generic function with 1 method)
julia> @btime f(5,5);
102.041 ns (0 allocations: 0 bytes)