I am not sure about the the example you have given, (Where the first row object remains in scope when the second call is made) but in the general case they are likey to be different.
Once a row object goes out of scope perl will Garbage collect it. If you want it back again you need to do another find, and DBIx::Class will look in the database, and inflate the row into a fresh instance of the class.
As far as I know DBIC does no caching behind the scenes of infated rows. I dare say that the developers of DBIC consider this a feature, as otherwise you could find yourself holding a stale object if another user of the databse changes the row. In any case if DBIC was caching row objects it would need a memory management system with weak references to avoid using up all your memory when you iterate over the rows of a large table.