Oh I get it
Also, it is usually adviced to not call srand often. E.g. imagine you have d20 and d6 functions that look the same, if the first time when you called them would happen too close in time so time(NULL) would return the same value, then they could generate bound values (if one is even, another would be often even as well).
If there's a case when you need seeded random, you can use other random number generator implementations than the global rand (in C++ there are some in the standard library, for C you can find some simple implementations on the internet). The reason is that since rand is global it can affect and be affected by other code. If you have your own RNG instance, you would have control over when it is seeded and with what.