Square brackets and parentheses are both normal parts of Python syntax, and neither one is related to package namespaces.
First, the square brackets are used to tell the model constructor that you are passing in a comma delimited list. Nothing at all to do with the namespace or paths to the definitions of the specific layer classes used within the list. Rather, those are defined by the import statement, in the example at the page you linked it is:
from keras.layers import Dense, Activation
See for example on this official TensorFlow doc page. The 3 Dense layer definitions are passed as a list using the comma delimiter within the square bracket, but because of the way import was used, the layer types are still qualified by the layers package name:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# Define Sequential model with 3 layers
model = keras.Sequential(
[
layers.Dense(2, activation="relu", name="layer1"),
layers.Dense(3, activation="relu", name="layer2"),
layers.Dense(4, name="layer3"),
]
)
Notice the difference in the import statements from the two examples. The first one imports Dense and Activation explicitly. The second one just imports layers, so Dense must be qualified as layers.Dense when it is used.
Second, what you refer to as the prefix above is the name of the instance variable you created. It is fundamentally different from a TensorFlow or Keras package name.
Third, what you refer to as normal brackets, the parentheses, is the Python syntax for function call. Again, fundamentally different from any package name or namespace.
Hope this helps