Consider a scenario where you are generating test data, perhaps with GETDATE() and you want to quickly generate lots of rows. By simply adding a number after the GO batch separator you can get you batch to execute multiple times. No need to write any crazy loops or any joins.
So, something like the following will generate 55 rows:
CREATE TABLE t (id IDENTITY(1,1), dt DATETIME)
INSERT INTO t SELECT GETDATE()
Simple, but effective.