Length(s) of allocatable character array?

I have always found the requirement to add the allocatable keyword to deferred length strings to be confusing. For folks relatively new to Fortran and who don’t understand that the elements of an array have to have a fixed length, the current syntax might imply that an array of variable length strings is possible (and I would love a way to construct an array of variable length strings without using a derived type). My personal preference would be that the allocatable keyword is only necessary when you want to create an array of strings of fixed length. For a scalar, I would think doing character(:) should be enough. You would only need to add the ALLOCATABLE if you want to create an array of fixed length strings at run time ala

character(:) , allocatable :: strings(:)
allocate(character(20):: strings(50))

and for just a scalar you want to set at runtime

character(:) :: a_string

a_string = "This is a string"