ok, question: why do we HAVE to play sounds from an entity? why not be able to use a position because i also realized that once that entity is removed, its sound stops

so if for example i have an explosion and the effect is removed quicker than the sound, the sound stops abruptly, i know there are tricks such as:

-setting the entity invisble,passable and only remove it after the sound stops
-creating dummy entities to play the sounds

but thats rather a pain:

the current function:
ent_playsound ( ENTITY*, SOUND*, var volume);

what it could have been:
ent_playsound ( VECTOR*, SOUND*, var volume);
or
vec_playsound.. whatever, the name doesnt matter much, tihngs like ent_playsound should have more parameters, or is there a method am overlooking?