This adds a bunch of functions and 2 tables to the public schema of dbname. Later I add a schema to this dbname database. Will all these postgis functions be available to the new schema? What about the 2 tables (geometry_columns and spatial_ref_sys)? How do these interact - are they schema specific or accessible across different schemas in the same database?
There is no such concept as "accessing from another schema". You grant users access to whatever in the database you like using "grant" constructs. If your search_path does not include the schema that holds the function, table, etc., then you may have to adopt the "schema.table" notation. See the documentation for information about "GRANT" and schemas.
Now I'll have to admit that I do not know how postgres is setup structurally, that is to say, what are schema, tablespace, catalogs, domains, procedures,..... and hence the question to this list.
I have a bigger issue currently, but that will be in another mail.