In fact that’s what you’re doing with the ./command method. The dot is the current directory. The tilde is the home directory.
Under DOS or Windows you can type a filename to execute and it will run from the current directory first and then search the path. Under Linux it won’t execute just because it’s in the current directory. It will search the path and then fail if not found.
Yes that is a security feature in Linux… it stops people exe uting trojan horses planted in ones home directory. Executables should be kept in more secure locations with less permissions than home directories.
This business of naming a file (or its full pathname) , and having it execute only came into being with Unix ( and Dos copied it). Before that one had to invoke the loader to run a binary program. When you execute a file by naming it, it still invokes the loader behind your back, so we tend to forget what it is really doing.