Using @eval to compile a simple print statement every time is really a bad approach.  There's no functionality for dynamic format strings etc. because Julia has a wide range of other nice tools to achieve the same things:
julia> join(stdout, (round(Int, y) for y in x[end, :]), " ")
1 0 1
And printing an array is really not what printf is made for (not even in C).  
That is not to say that a printf function taking a runtime format string wouldn't be a nice thing, but see here for the reasoning behind making it a macro.  I've never missed printf, but in case you really do, there's Formatting.jl, which provides all functinality you can imagine.