The solution is simple: Use the last time the file was changed as version number. You can use
filemtime() (File Modified Time) on the path of the file. Example:
get_template_directory_uri().'/assets/style.css', # use plugin_dir_url( __FILE__ ) for plugins
array( 'dependencies', ), # use  for PHP 5.4+
filemtime( get_template_directory().'/assets/style.css' ) # use plugin_dir_path( __FILE__ ) for plugins
This will append the UNIX timestamp as version number. And it will stay that way until you change your stylesheet again. That's the most convenient way I know of. It stays cached in browsers until there's a change. That btw works perfectly with stuff like watch and livereload tasks during development.
And if you ask (in the comments) why WordPress doesn't do that per default, then my answer would be ... "Uhm, well. WordPress."