This can create issues if you don't have sticky sessions enabled in your load balancer. Because you are rendering the file in your view, it could be rendered on server 1 and the request for the asset actually ends up routed to server 2, where the file may not have been created yet.
In a web farm scenario I think it is best to create your bundles on Application_Start, then render in your view using one of the cached / named methods.
So if you want to keep rendering to static files instead you'd have something like this in application_start (global.asax.cs) or downstream (I like a specialized initializer for SquishIt)
Bundle.JavaScript()
.Add("~/js/jquery-1.4.2.js")
.Add("~/js/jquery-ui-1.8.1.js")
.RenderNamed("bundleName", "~/js/combined_#.js") //2nd arg is used to resolve disk location
Then to render in your view:
<%= Bundle.JavaScript().RenderNamed("bundleName") %>
This will ensure that the file has been created by the time the server is ready to respond to requests, at the expense of application startup time (make sure your app pool isn't getting recycled too often!).
The asset controller method may be better because it gives you a chance to recover if the bundle is not found. You can read about that here: https://github.com/jetheredge/SquishIt/wiki/Using-SquishIt-programmatically-without-the-file-system
Finally, using a CDN may be a good option as well. You can do some reading on that (using Amazon S3 / Cloudfront, but the ideas apply to any CDN) here: http://blogs.lessthandot.com/index.php/WebDev/ServerProgramming/making-squishit-work-with-amazon