It's a very good Question. Vote up. I can Answer it mostly, but there are some small details that I can't explain with certainty because they are not documented.
In the expressions seq(k, k= 1..5) and int(k, k= 1..5), the k is called a bound variable (see the Wikipedia article "Free variables and bound variables"). Note that bound, as used in this context, is the past-participle adjective form of the verb to bind; it is not the noun bound as used in "lower bound" and "upper bound", nor is it the past participle of to bound (which is bounded) as in "The functions have bounded derivatives"; nor is it directly related to binding as that verb is used in the context of the with command binding exports to globals. This classification of variables comes from formal logic, and it's used in a variety of fields such as mathematics, computer science, and even linguistics (where, for example, pronouns are the variables); it's not anything specific to Maple. Anyone who programs in a symbolic language such as Maple must be at least implicitly aware of this classification to be successful.
There are a huge number of stock Maple commands that can or must use bound variables in their calling sequence (such as diff, plot, limit, sum), and you can easily write your own procedures that use them. It is not a special declaration that makes them bound; it's a property of the meta-logic of the procedure.
There are three Maple commands where the bound variable has a special status, and that status is the same in all three: seq, add, and mul. There is no formal name that I'm aware of for this special status; this is very poorly documented. For the sake of this article, I'll call it PLBV (partially local bound variable), although that's not a precise description. It's only those three commands that use a PLBV. There's no formal mechanism whereby you can create your own procedure that uses a PLBV, although I wouldn't be surprised if it were informally possible with the "hackware" commands (addressof, disassemble, assemble, and pointto).
In many ways (but definitely not all ways), PLBVs act like local variables. This is the reason for the anomaly that you reported. You can think of the ii in ii:= 50 and the ii in the seq command as different variables. It is not necessary to use a bound variable in a seq command. If you want to repeat ii five times, you can use seq(ii, 1..5).