How to make a range repeat n-times in Google SpreadSheet
I would use split() function instead of arrayformula() and rept() function to repeat cell positions. For example, if your n=4 the formula will look like this:
=split(rept(C1&";",4),";")
rept() repeats cell position C1+semicolon four times creating a string and split() function divides created string by semicolons to horizontal cells.
You can rotate resulted horizontal table to vertical table using transpose() function:
=transpose(split(rept(C1&";",4),";"))
And yes, you can use it to create dynamic formulas with help of arrayformula() function:
=arrayformula(count(D:D)*split(rept(C1&";",4), ";"))
For N rows and M columns of string text:
=ARRAYFORMULA( "text" & T(SEQUENCE(N_rows, M_columns)))
For N rows and M columns of number 123:
=SEQUENCE(N_rows, M_columns, 123 ,0)