It is perfectly safe to acquire memory using the apr_pool_t pointer that you receive inside of this function. Also, this function will be invoked once for every server/host configuration you have in your httpd.conf file, so that's why you see multiple calls to this function. For example a root server configuration and one configuration section would make this function be invoked twice.
typedef struct
{
int value;
} my_srv_cfg;
static void *example_create_server_config(apr_pool_t *pool, server_rec *s)
{
my_srv_cfg *new = apr_pcalloc(pool, sizeof (*new));
new->value = 100;
return new;
}