Because even a shallow copy has to mean something other than just adding a reference to the same object. The behavior you expect you would get from doing
b = even_numbers
This is a better example of a shallow copy:
julia> a = [[1, 2], [3, 4]]
2-element Array{Array{Int64,1},1}:
[1, 2]
[3, 4]
julia> b = copy(a)
2-element Array{Array{Int64,1},1}:
[1, 2]
[3, 4]
julia> push!(b[1], 5)
3-element Array{Int64,1}:
1
2
5
julia> a
2-element Array{Array{Int64,1},1}:
[1, 2, 5]
[3, 4]
julia> b
2-element Array{Array{Int64,1},1}:
[1, 2, 5]
[3, 4]