Yes, we can tell. When it doesn't matter, humans will organize stuff into logical chunks, so the logic happens in order, register assignment happens in order, etc. The compiler, on the other hand, assigns stuff haphazardly, when instruction order doesn't matter it emits instructions in pseudo-random order, etc.
But we can tell hand-written assembly code by somebody learning assembly from de-compiled code at a glance. The compiler will use too-advanced tricks that are just not taught in first-level courses. Basically, if we see something too advanced too early by somebody who isn't blowing away the homework and the exams, it was decompiled.
Historically, this was reversed and as late as 15 years ago, we were mocking the compiler's assembly as though written by a novice. No more. Now the compiler is the expert.