I don't really have links on "best practices", although you can easily find discussions in how to make filenames compatibles across platforms (in which case there are other characters that are more important than spaces and capital). In fact, just looking at all the folders created by Linux DEs - most of them use both spaces and capitals.
And frankly, it makes sense from a user perspective : capitalized words are simply nicer to look at.
However, if you are looking at files that are intended for programmers or technical users, then you can get in trouble. For example, you might lookup a specific file for configuration or building that will be represented differently on Windows and Unix. Or, if you're really not careful, you might even have conflicts -- config.INI and config.ini are different files on Linux but the same file on Windows.
I remember a dev from a game porting company (could have been Feral or Aspyr) discussing on /r/linux_gaming how differences in case sensitivity is actually a big deal in porting games from Windows to Linux. I won't be able to find it, though, it's been years since I was really active there.
Avoid capitals and spaces and you will avoid a lot of problem, although how much headache those problems will cause can vary.