Sequences in Dafny are an immutable type, so from a verification point of view, it doesn't matter how they are represented at runtime. But as functional programmers know, it's normal to represent lists in a functional language (under the hood, in a way the programmer can't manipulate) as linked lists, so that taking the tail of a list is constant time (and involves no storage allocation), and so that list concatenation reallocates the cells of the left argument, but just uses the reference to the right argument.
Is anything written down about how sequences are intended to be represented in Dafny implementations? Again, this is only an issue if one wants to actually run Dafny programs.