You're right.
* 공부를 하다 = 공부하다 / 숙제를 하다 = 숙제하다
* You can say without 을/를 in spoken language.
But why they use 공부를 하다 and 공부하다 both?
공부를(a noun + ending article) 하다( a verb)
공부하다(a verb "to study)
There are many forms of a noun을/를+하다 in Korean. If you drop 을/를, then you come to use a VERB. It's like "do something" in English - drink / do a drink, repair / do a repair...
* Difference?
For examples; a verb 공부하다 needs an object: ~을/를 공부하다
-> 나는 영어를 공부해 I study English.
-> 나는 너를 사랑해 I love you. ~을/를 사랑하다
But in the sentences of "공부를 하다" "사랑을 하다", there are objectives already.
So you can't say "영어를 공부를 하다" and "너를 사랑을 하다"
-> 영어를 공부하다 / 영어 공부를 하다. 너를 사랑하다. But 너 사랑을 하다 is wrong.
* You can say 공부해, 영어를 공부해, 영어 공부해 (means "I study English)
We usually drop 을/를 in spoken language. In case of use ending article, it means to emphasize a noun(an objective).
A: 뭐 해? What are you doing?
B: 숙제해 Doing my homework.
A: 뭐 한다고? Do what?
B: 숙제를 하고있다고! I say I am doing my Homework.
* 띄어쓰기 word spacing
공부를 하다 / 공부하다 / 사랑을 하다 / 사랑하다
* 공부하다: study, work at one's studies
법률을 공부하다 study law
책 a book; 책으로 공부하다 learn from books
숙제를 하다/ 숙제 하다
책을/ 숙제를 공부하다(X)
** There are another patterns of verb
춤을 추다 / 춤추다 dance
밥을 먹다 / 밥먹다 eat (a meal)
술을 마시다 / 술마시다 drink (a wine)
잠을 자다 / 잠자다 sleep
..........